gpt4 book ai didi

regex - RewriteRule 和重定向 301 有什么区别

转载 作者:行者123 更新时间:2023-12-03 21:41:10 24 4
gpt4 key购买 nike

我正在使用这样的东西......

RewriteRule here/(.*) http://www.there.com/$1 [R=301,L] 

但无法让它工作

所以我用了这个...
redirect 301 /here http://www.there.com 

它工作正常。

有人可以解释一下区别吗?
你两个都需要吗?

另外...如何从重定向中排除路径?

喜欢...
重定向 301 所有...
redirect 301 /here http://www.there.com 


/here/stayhere.html

谢谢

最佳答案

RewriteRule is handled by Apache's mod_rewrite , 而 Redirect is handled by mod_alias .不,你不需要两者。

您的 RewriteRule(使用正则表达式)将不匹配 /here (但会匹配诸如 /here/foo.html 之类的路径),因为它会在之后立即寻找斜杠。您可以使用问号将其设为可选:

RewriteRule ^here(/?.*) http://www.there.com$1 [R=301,L]

现在这将与您的重定向具有相同的效果。可以添加 RewriteCond 以排除某些路径:
RewriteCond $0 !/here/stayhere\.html

请注意,某些服务器默认没有开启 mod_rewrite。如果添加 RewriteEngine on到您的配置并不能解决问题并且您无法打开 mod_rewrite,至少 mod_alias 提供了 RedirectMatch 指令,这可能已经足够了:
RedirectMatch 301 ^/here(?!/stayhere\.html)(/?.*) http://www.there.com$1

关于regex - RewriteRule 和重定向 301 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com