我正在尝试将子文件夹及其后的任何内容重定向到主页。
例如:
example.com/subfolder/extra-stuff
> example.com
extra-stuff
不断更改并自动生成,因此我希望重定向也能将其删除。
我正在使用:
Redirect 301 /subfolder(.*) http://www.example.com
但是,这会产生http://www.example.com/extra-stuff
。
如果/subfolder(and anything else after subfolder)
重定向到家,有没有办法可以说?
感谢您的任何建议!
答案 0 :(得分:0)
Redirect
指令使用简单的前缀匹配,匹配后的所有内容都复制到目标URL的末尾(这是您在此处看到的)。但是Redirect
也不支持正则表达式,因此最后一个类似(.*)
的模式严格无效。
您需要使用RedirectMatch
代替(也是mod_alias的一部分),它使用正则表达式,而不是前缀匹配。
例如:
RedirectMatch 301 ^/subfolder http://www.example.com/
启动的任何请求 /subfolder
都不会被重定向到http://www.example.com/
。
在测试之前,您需要清除浏览器。
您标记了您的问题“Magento”(可能正在使用mod_rewrite)。但是,您应该注意,如果您已经使用mod_rewrite进行重写/重定向,那么您可能应该使用mod_rewrite而不是mod_alias来执行此重定向,因为您可能会发生冲突。
例如,等效的mod_rewrite指令是:
RewriteRule ^subfolder http://www.example.com/ [R=301,L]
请注意RewriteRule
模式上没有斜杠前缀。这需要靠近.htaccess
文件的顶部。