我查看了其他已发布的问题,但我似乎无法找到与我的具体情况相关的答案。我已经建立了动态网址(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重定向而无需单独执行每一个。
答案 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]