繁体   English   中英

如何htaccess 301重定向网址中带有问号的网页

[英]How to htaccess 301 redirect pages with a question mark in the url

我正在尝试重定向几个在URL中都有问号的页面。

我基本上想要重定向:

www.example.com/?attachment_id=456 to www.example.com

还有很多页面都有不同的ID#。

我在htaccess尝试了一些没有运气的东西..

有任何想法吗?

这是我试过的:

RewriteCond %{QUERY_STRING} ^attachment_id=[0-9]
RewriteRule ^/$ http://www.example.com/? [L,NC,R=301]

你为什么不能这样做? 此代码应重定向此网址,例如www.example.com/?attachment_id=456

RewriteCond %{QUERY_STRING} ^attachment_id=[0-9]+
RewriteRule ^/?$ http://www.example.com/? [L,NC,R=301]

我做了/ optional,以便它可以在Apache配置或.htaccess中使用。 我还保留了? 您在RewriteRule末尾的重定向中删除重定向上的任何查询字符串。

你的方法是完美的,只是一些小的修正:

RewriteEngine on
RewriteCond %{QUERY_STRING} attachment_id=[0-9]+
RewriteRule ^/$ http://www.example.com/ [L,R=301]

以上是主机配置的版本。 请注意,必须在更改主机配置后重新启动http服务器才能使其生效。 要调试,请参阅http服务器错误日志文件,尤其是在重新启动时。

如果您必须依赖.htaccess样式文件,那么不幸的是,规则本身的语法必须略有不同:

RewriteEngine on
RewriteCond %{QUERY_STRING} attachment_id=[0-9]+
RewriteRule ^$ http://www.example.com/ [L,R=301]

此类文件必须位于主机文档根目录的主文件夹中。 此外,必须通过AllowOverride选项在主机配置中启用此类文件的解释。

通常,您应该始终优先选择.htaccess样式文件上的此类规则的主机配置,但您需要具有管理访问权限。 .htaccess样式文件众所周知容易出错,难以调试并且真的减慢了服务器速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM