我正在使用nginx 1.0.8,并且尝试将所有访问者从www.mysite.com/dir重定向到google搜索页面http://www.google.com/search?q=dir,其中dir是变量,但是如果dir ==“ blog”(www.mysite .com / blog),我只想加载博客内容(Wordpress)。
这是我的配置:
location / {
root html;
index index.html index.htm index.php;
}
location /blog {
root html;
index index.php;
try_files $uri $uri/ /blog/index.php;
}
location ~ ^/(.*)$ {
root html;
rewrite ^/(.*) http://www.google.com/search?q=$1 permanent;
}
如果我这样做,即使www.mysite.com/blog也将重定向到google搜索页面。如果删除最后一个位置,www.mysite.com / blog效果很好。
从我在这里阅读的内容:http://wiki.nginx.org/HttpCoreModule#location看来,优先级将首先在正则表达式上,并且与查询匹配的第一个正则表达式将停止搜索。
谢谢
最佳答案
location / {
rewrite ^/(.*)$ http://www.google.com/search?q=$1 permanent;
}
location /blog {
root html;
index index.php;
try_files $uri $uri/ /blog/index.php;
}
http://nginx.org/r/location
http://nginx.org/en/docs/http/request_processing.html
关于mod-rewrite - nginx重定向除一个目录以外的所有目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11493325/