1

これが私の.htaccessです

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_REFERER} !^http://shop.com/index.php?controller=authentication&back=my-account [NC]
RewriteRule (.*) http://shop.com/index.php?id_category=12&controller=category [R=301,L]

が欲しいです :

  • index.phpリダイレクトされindex.php?id_category=12&controller=categoryます。
  • リファラーが等しい場合は、このリダイレクトをオーバーライドしますhttp://shop.com/index.php?controller=authentication&back=my-account

例外を作成することになっている3番目のRewriteCondは、リファラーindex.phpがに等しい場合の要求と一致しないようhttp://shop.com/index.php?controller=authentication&back=my-accountです。その結果、RewriteRuleが考慮されますが、考慮されるべきではありません。

%{HTTP_REFERER}この動作により、URLにパラメータが含まれていないように思われます(この場合は:) id_category=12&controller=category

4

1 に答える 1

1

します。疑問符をエスケープする必要があります。これを試して:

RewriteCond %{HTTP_REFERER} !^http://shop.com/index.php\?controller=authentication&back=my-account [NC]
于 2012-12-04T16:29:24.393 に答える