两个方向上的重写/转发URL以循环结束

时间:2014-03-01 15:09:57

标签: regex apache .htaccess mod-rewrite redirect

我想在两个方向上重写或转发两个网址,因为所使用的软件不允许在被叫网址中进行此更改。

调用的网址为“https://example.com/customerarea/cart.php?a=view”,应转发至https://example.com/cart/,并将其重写为被叫网址。

将“cart /”重写为“customerarea / cart.php?a = view”:

RewriteRule ^cart/$ customerarea/cart.php?a=view [QSA,L]

此规则有效。

如果我添加以下条件和规则从“customerarea / cart.php?a = view”转发到“cart /”,它会以连续循环结束。

RewriteCond %{REQUEST_URI} ^/customerarea/cart.php$
RewriteRule ^(.*)$ https://example.com/cart/ [R=301,L]

1 个答案:

答案 0 :(得分:1)

你需要2个这样的规则:

RewriteCond %{THE_REQUEST} \s/+customerarea/cart\.php\?a=view [NC]
RewriteRule ^ /cart/? [R=301,L]

RewriteRule ^cart/$ /customerarea/cart.php?a=view [QSA,L]