Mod rewrite apache对nginx的多个重写条件
有人能帮我吗Mod rewrite apache对nginx的多个重写条件,mod-rewrite,nginx,Mod Rewrite,Nginx,有人能帮我吗 RewriteCond %{REQUEST_URI} !^\/index\.php$ RewriteCond %{REQUEST_URI} !^\/search\/.* RewriteCond %{REQUEST_URI} ^\/([^/]*)\.php$ RewriteRule (.*) http://www.mydomain.com/index.php?page=$1 我需要将此转换为nginx 我试过这个,但不起作用: if ($request_uri ~* !^\/sea
RewriteCond %{REQUEST_URI} !^\/index\.php$
RewriteCond %{REQUEST_URI} !^\/search\/.*
RewriteCond %{REQUEST_URI} ^\/([^/]*)\.php$
RewriteRule (.*) http://www.mydomain.com/index.php?page=$1
我需要将此转换为nginx
我试过这个,但不起作用:
if ($request_uri ~* !^\/search\/.*) {
if ($request_uri ~* !^\/index\.php$) {
if ($request_uri ~* ^\/([^/]*)\.php$) {
rewrite (.*) http://www.mydomain.com/index.php?page=$1;
}
}
}
尝试更改
~*代码>到~*代码>,并组合最后两个:
if ($request_uri !~* ^/search/.*) {
if ($request_uri !~* ^/index\.php$) {
rewrite ^/([^/]*)\.php$ http://www.mydomain.com/index.php?page=$1 redirect;
}
}
或者坚持基于位置的规则:
location ~ /index\.php$ { }
location ~ /search/.* { }
location / {
rewrite ^/([^/]*)\.php$ http://www.mydomain.com/index.php?page=$1 redirect;
}
尝试更改~*代码>到~*代码>,并组合最后两个:
if ($request_uri !~* ^/search/.*) {
if ($request_uri !~* ^/index\.php$) {
rewrite ^/([^/]*)\.php$ http://www.mydomain.com/index.php?page=$1 redirect;
}
}
或者坚持基于位置的规则:
location ~ /index\.php$ { }
location ~ /search/.* { }
location / {
rewrite ^/([^/]*)\.php$ http://www.mydomain.com/index.php?page=$1 redirect;
}
我最终使用了:
if ($uri !~ "^/index.php$") {
set $rule_0 1$rule_0;
}
if ($uri !~ "^/search/.*") {
set $rule_0 2$rule_0;
}
if ($uri ~ "^/([^/]*).php$") {
set $rule_0 3$rule_0;
}
if ($rule_0 = "321") {
rewrite ^(.*) /index.php?page=$1 last;
}
我最终使用了:
if ($uri !~ "^/index.php$") {
set $rule_0 1$rule_0;
}
if ($uri !~ "^/search/.*") {
set $rule_0 2$rule_0;
}
if ($uri ~ "^/([^/]*).php$") {
set $rule_0 3$rule_0;
}
if ($rule_0 = "321") {
rewrite ^(.*) /index.php?page=$1 last;
}
第一个不起作用,因为nginx不接受嵌套。第一个不起作用,因为nginx不接受嵌套。