.htaccess删除url末尾的特定字符串

时间:2017-08-20 20:31:57

标签: string .htaccess

我有一个旧网站,其网址如/articles/id?PHPSESSID=

我想删除网址末尾的?PHPSESSID=

更新:我创建了一个新网站,旧网址已移至archive.example.com。我设法通过将以下代码添加到.htaccess文件来重定向旧URL:

RewriteRule ^articles/(.*)$ http://archive.example.com/articles/$1 [R=301,L]

但Google或FB的许多旧链接最终都是?PHPSESSID=,无法重定向到http://archive.example.com/,我不知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

RewriteRule ^articles/(.*)$ http://archive.example.com/articles/$1 [R=301,L]

为防止查询字符串(即。?PHPSESSID=)在重定向中传递(即删除它),您只需在{{1}末尾添加? } 替换。例如:

RewriteRule

这有效地在目标URL上创建一个空查询字符串。您没有看到尾随RewriteRule ^articles/(.*)$ http://archive.example.com/articles/$1? [R=301,L] 。或者,您可以使用Apache 2.4 +上的?(查询字符串放弃)标记

请注意,这会删除整个查询字符串,而不仅仅是QSD参数。