我有像www.example.com/de/something这样的urls,我需要将以/de/开头的所有内容都重定向到www.example.com。
此刻我已经做了这个
redirect 301 /de http://example.com它重定向所有链接,但只删除/de部件,结果是www.example.com/something。
怎么解决这个问题?
谢谢
发布于 2016-11-10 12:35:52
重定向指令匹配uri的其余部分并将其追加到目标中,可以使用RedirectMatch重定向特定的uri。
redirectMatch 301 ^/de/? http://example.com发布于 2016-11-10 12:40:44
如果您希望/de/在目标中指定/de/,因为重定向将在目标中包含“匹配的”后面的所有内容。
对于不同的虚拟主机作为目标,您希望这样做:
Redirect 301 /de/ http://example.com/de/或
Redirect 301 /de http://example.com/de如果您想要的是在同一个虚拟主机/de中将其重定向到/,那么请使用负前瞻性。
RedirectMatch ^(?!de) http://example.com/如果上下文是.htaccess,对于虚拟主机,它将是:
RedirectMatch ^/(?!de) http://example.com/注意:我使用/de/最初是因为这是您在问题中所描述的,而且我还匹配目标中的斜杠。对于/desomething或/de/之类的情况,源和目标都不需要斜杠。在任何情况下,总是匹配斜杠或缺少它们。
Note2:除非你不是网站的管理员,否则不要使用.htaccess重定向。它只会使事情复杂化,并增加不必要的开销,因为每次命中都需要检查文件/s多次。
https://stackoverflow.com/questions/40527730
复制相似问题