使用mod_rewrite重定向无法正常工作

时间:2013-11-02 01:46:32

标签: regex apache .htaccess mod-rewrite

我是新手在Apache上使用mod_rewrite引擎,虽然我对正则表达式有一些基本的了解。但是,我感到困惑,并且在重定向无法正常工作时变得十分中风。

以下是我的.htaccess文件中的相关代码:

RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

当我重定向时,$ 2中没有任何内容。 $ 0和$ 1都包含整个匹配的字符串。例如,如果原始网址为/ vacations / asia / rar,我将被重定向到http://www.example.com/vacations/asia/rar而不是www.example.com/asia。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是因为当您使用RewriteCond backreferences(%1)时使用RewriteRule backreferences($ 1):

RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/%1 [R=301,L]