[英]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.