1

誰でもこれで私を助けることができますか?

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;
    }
  }
}
4

2 に答える 2

1

私は最終的に以下を使用しました:

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;
}
于 2012-09-25T06:50:23.130 に答える
0

をに変更し~* !!~*、最後の2を組み合わせてみてください。

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; 
}
于 2012-09-24T16:28:50.507 に答える