某些不需要的 URL 具有重复的参数。参数的值为 1 和 0(下面给出了两个示例)。我正在尝试将它们 301 重定向到主 URL,即删除参数部分。
示例 1:
www.xyz.com/2012/04/bharati-4g-tariff-and-rate-bharati-4g.html?m=0?m=1
重定向至
www.xyz.com/2012/04/bharati-4g-tariff-and-rate-bharati-4g.html
示例 2:
www.xyz.com/2012/04/bharati-4g-tariff-and-rate-bharati-4g.html?m=1?m=1
重定向至
www.xyz.com/2012/04/bharati-4g-tariff-and-rate-bharati-4g.html
一个简短的解决方案,但并不令人满意: 我有一个解决方案,可以显示这些 URL 的 404 未找到错误,但后来这开始在我的 Joomla 网站的某些管理页面中出现错误。我遵循的解决方案是:
RewriteCond %{QUERY_STRING} m [NC]
RewriteRule ^(.*)/?$ /$1? [R=404,L]
请向我建议解决方案,该解决方案将提供 301 重定向到基本 URL 或提供 https 404 未找到 header 代码。
该解决方案仅影响具有重复/双重 URL 的 URL,如上例所示,但不影响其他类型。
最佳答案
您可以在 .htaccess 中使用此重定向规则作为第一条规则来删除不需要的查询字符串:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^m=[^&]* [NC]
RewriteRule ^ %{REQUEST_URI}? [R=302,L]
关于apache - htaccess 重定向 URL 中的重复参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657930/