(/.*)的URL重写循环

时间:2014-02-24 08:30:49

标签: apache loops mod-rewrite

点击时我必须访问以下网址:

localhost/b/c
redirect to
localhost/a/b/c

我尝试了这个重写规则:

RewriteCond [%{REQUEST_URI}] !^/?(a(/.*))/?$
RewriteRule ^/([A-Za-z0-9_]+)/?$ /a/$1 [R,L]

但它只适用于localhost/b。不适用于localhost/b/c,即多个级别。

RewriteCond [%{REQUEST_URI}] !^/?(a(/.*))/?$
RewriteRule ^/(.*)/?$ /a/$1 [R,L]

此规则正在循环并重写为url

localhost/a/a/a/a/a/a/a/a/a/a/a/b/c

非常感谢所有帮助。我是url重写的新手

1 个答案:

答案 0 :(得分:0)

也许这可能对你有用:

    RewriteCond %{REQUEST_URI} !^/?a/.*/?$
    RewriteRule ^/(.*) /a/$1 [R,L]

我认为您的问题是您在[]中使用RewriteCond,而{}应该{{1}}。

此外,启用RewriteLog有助于调试重写规则。

希望它可以帮助你前进。