.htaccess htaccess重定向URL中的重复参数

qxsslcnc  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(150)

有一些不需要的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

**一个简短的解决方案,但并不令人满意:**我有一个解决方案,我可以显示404未找到这些URL的错误,但后来这开始给我在我的Joomla网站的一些管理页面的错误。

RewriteCond %{QUERY_STRING} m [NC]
RewriteRule ^(.*)/?$ /$1? [R=404,L]

请建议我的解决方案,这将给予301重定向到基本网址或将给https 404找不到头代码。
该解决方案应仅影响具有重复/双重URL的URL,如上面的示例所示,而不影响其他类型。

xoshrz7s

xoshrz7s1#

您可以将此重定向规则用作.htaccess中的第一个规则,以删除不需要的查询字符串:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^m=[^&]* [NC]
RewriteRule ^ %{REQUEST_URI}? [R=302,L]
dly7yett

dly7yett2#

尝试在RewriteRule上使用qsdiscard(或QSD)标志以放弃查询字符串。

RewriteCond %{QUERY_STRING} m [NC]
RewriteRule ^(.*)/?$ /$1? [R=404,L,QSD]

相关问题