使用目录重定向301

时间:2014-10-20 11:24:50

标签: php apache .htaccess mod-rewrite redirect

我制定了一些规则:

RewriteEngine On
RewriteBase /

RewriteRule ^dir1/dir2/(.*).html$ /dir2/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

我的旧链接看起来是:http://example.org/app_name/dir1/dir2/slug.html,但新链接看起来像:http://example.org/app_name/dir2/slug

我的重定向效果差不多但新链接重定向到http://example.org/dir2/slug(没有app_name /)

如何将app_name / dir添加到动态重定向?

下面的解决方案并不好:

RewriteRule ^dir1/dir2/(.*).html$ /app_name/dir2/$1 [R=301,L]

2 个答案:

答案 0 :(得分:0)

只需在dir1/dir2之前添加额外的捕获:

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)/dir1/dir2/(.*).html$ /$1/dir2/$2 [R=301,L]

答案 1 :(得分:0)

这应该适合你:

RewriteRule ^(.*)/dir1/(.*)/(.*).html$ /$1/$2/$3 [R=301,L]

将生成捕获的appname,dir2和slug

相关问题