请教一个 nginx 配置问题,关于 rewrite 的写法
- 0次
- 2021-05-25 14:36:13
- idczone
折腾了一晚上 nginx ,发现一个 nginx 配置需求实现不了
1 、 http://www.xxx.com/blog/.* 正常请求 /wwwdata/xxx/blog 下的一个 wordpress
2 、 http://www.xxx.com/ 302 到美国服务器 http://www.xxx.com/blog/
3 、其余请求 http://www.xxx.com/.* 都 302 到另外一个 URL http://www.aaa.com/
目前的配置是
server
{
listen 80;
server_name www.xxx.com;
index index.php;
root /wwwdata/xxx;
location = /
{
rewrite . http://www.xxx.com/blog/ redirect;
}
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_index index.php;
}
}
第一和第二两点都好操作,但当我尝试加入 location ^~ / 貌似所有请求都进去这个 location 了, php 也不解析。
nginx 自学的也没太懂,请问各位大牛这个该咋写?
location / {
return http://www.aaa.com/
}
没事用什么 regex
location = / 也不需要 rewrite 。直接 return http://www.xxx.com/blog/就行
还有,今后例子还是 a.com b.com 比较好。我手贱点开了链接,周围人的眼神都不对了
如楼上。。第三个用默认的 location /{}就行了。。 return 302 http://xxx.com;
location 匹配有优先级,合理利用优先级就行了。