通过htaccess将旧动态网址重定向到seo友好网址

时间:2014-01-11 13:59:34

标签: regex apache .htaccess url mod-rewrite

我查看了其他已发布的问题,但我似乎无法找到与我的具体情况相关的答案。我已经建立了动态​​网址(rr.php?rrid = 5),我正在切换到seo友好网址(rr / 5 / name /)我有那部分工作

RewriteRule ^rr/([0-9]+)/([a-z\+\-]+)/?$ /rr.php?rrid=$1 [L]

我遇到的问题是实施301重定向,告诉搜索引擎网址已更改而不会导致重定向循环。此外,我有数百个rrid =#并且我想要一种方法来执行类似于上述规则的301,其中/ name /部分是不同的,具体取决于rrid =#

我知道有一种方法可以添加和重写上述规则,但是我无法弄清楚如何编写301重定向而无需单独执行每一个。

1 个答案:

答案 0 :(得分:1)

您需要有301处理的附加规则。将此代码放在DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+rr\.php\?rrrid=([0-9]+) [NC]
RewriteRule ^ /rr/%1? [R=302,L]

RewriteRule ^rr/([0-9]+)/?$ /rr.php?rrid=$1 [L,QSA]
RewriteRule ^rr/([0-9]+)/([a-z+-]+)/?$ /rr.php?rrid=$1 [L,QSA]