我是新手在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。
任何帮助将不胜感激。
答案 0 :(得分:0)
这是因为当您使用RewriteCond backreferences(%1)时使用RewriteRule backreferences
($ 1):
RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/%1 [R=301,L]