2014-01-11 153 views
1

我查看了其他发布的问题,我似乎找不到与我的具体情况有关的答案。我已经建立了动态​​网址(rr.php?rrid = 5),我切换到搜索引擎友好的URL(RR/5 /名称/)我有这部分工作通过htaccess将旧的动态网址重定向到seo友好的网址

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

我遇到的问题是实现301重定向,告诉搜索引擎该网址已经改变而不会导致重定向循环。此外,我有数百rrid =#,我想要一种方法来做301类似于上述规则,其中/名称/部分取决于rrid =#

我知道有一种方法可以添加&重写到上述规则,但我无法弄清楚如何编写301重定向,而无需通过并单独做每一个。

回答

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] 
+0

的rrid始终是一个号码,以便能够在条件regrex只是([0-9 +])?此外,我试图301重定向,但你有302只是一个临时重定向。你有这样做的理由吗? – McCoy

+0

是的,它确实可以,只是更新。 – anubhava

+0

是否有302而不是301的原因? – McCoy

相关问题