使用.htaccess文件重定向改写URL,解决内容重复问题
用.htaccess解决viewtopic.php URL内容重复问题
要把带f和t参数的链接(比如https://www.pooeen.com/viewtopic.php?f=3&t=30)永久重定向到仅保留t参数的版本(https://www.pooeen.com/viewtopic.php?t=30),直接在你现有的.htaccess代码里新增一条重写规则即可,完整代码如下:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 重定向带f+t参数的viewtopic.php到仅带t参数的版本 RewriteCond %{QUERY_STRING} ^f=\d+&t=(\d+)$ RewriteRule ^viewtopic\.php$ /viewtopic.php?t=%1 [R=301,L] # 移除index.php/html的原有规则 RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html)\ HTTP RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L] </IfModule>
规则说明:
RewriteCond %{QUERY_STRING} ^f=\d+&t=(\d+)$:精准匹配查询字符串为f=数字&t=数字的请求,同时把t参数的数值捕获到%1变量中RewriteRule ^viewtopic\.php$ /viewtopic.php?t=%1 [R=301,L]:将匹配到的请求重定向到只带t参数的URL,R=301是永久重定向(对SEO友好),L表示匹配这条规则后不再执行后续规则
注意事项:
- 确认你的服务器已经启用了
mod_rewrite模块 - 测试阶段可以先用
R=302临时重定向,避免浏览器缓存永久重定向规则导致测试不便,确认正常后再改回R=301 - 如果存在
t参数后还带其他参数的情况,可以把条件改成^f=\d+&t=(\d+)(&.*)?$,重定向目标改成/viewtopic.php?t=%1%2,这样会保留t参数后的其他参数
内容的提问来源于stack exchange,提问作者user22188740
相关产品推荐
相关产品推荐

