apache - htaccess 重定向 URL 中的重复参数

标签 apache .htaccess redirect mod-rewrite joomla

某些不需要的 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/

相关文章:

linux - 如何访问Azure中Linux服务器上的网站?

PHP CMS 图片上传错误

apache - 哪些是删除密码的命令?

.net - 我如何禁止整个公司访问我的网站?

wordpress - 利用浏览器缓存不起作用 - Htaccess 和 mod_expires Active

php - 从 url 中删除 app/webroot

Grails spring security - 登录后如何重定向到同一页面?

apache - HTACCESS 重定向

php - Laravel 5.3 - 登录尝试重定向失败

javascript - AngularJS 仅在浏览器的后退按钮上重定向路由