gpt4 book ai didi

regex - RewriteRule : ^ vs ^(. *)$ 与 ^.*$ 有区别吗?

转载 作者:行者123 更新时间:2023-12-02 17:47:28 26 4
gpt4 key购买 nike

在 RewriteRule 中使用 ^ vs ^(.*)$ vs ^.*$ 作为通配符有什么区别?

我的目标是重定向 http://carnarianism.com/ (任何)到 http://carnarian.com/ 的登陆(默认)页面.我找到了以下解决方案,它们似乎都有效,所以我想知道哪个对性能更好?

RewriteRule ^ http://carnarian.com/ [R=301,L]
RewriteRule ^.*$ http://carnarian.com/ [R=301,L]
RewriteRule ^(.*)$ http://carnarian.com/ [R=301,L]

所有这些似乎都可以正常工作。这是我在 StackOverflow 上发表的第一篇文章,大多数时候我只要搜索一下就能找到答案。

明确一点:在我的 .htaccess 中被质疑的 RewriteRule 之上是一个 RewriteCond 和 WWW 处理程序,如下所示:

RewriteEngine On
RewriteBase /

# FROM www. --TO-- NO www. See no-www.org
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{HTTP_HOST} carnarianism\.com$ [NC]
########## The Above Questioned RewriteRule ??? ##########
RewriteRule ^ http://carnarian.com/ [R=301,L]

注意:我使用以下内容开始此搜索,但我不想要以下内容,因为路径也已通过,我希望它只转到登录页面。因此,我知道您需要括号才能使用 $1 变量。我不想要 $1 变量。

RewriteRule ^(.*)$ http://carnarian.com/$1 [R=301,L]

最佳答案

  • ^ 使任何原始 URL 都不能作为反向引用访问。 $0 是一个空字符串。
  • ^.*$ 使整个原始 URL 可作为 $0 反向引用访问(因此您可以执行例如 http://example.com/oldurl。 php?url=$0)
  • ^(.*) 使整个原始 URL 可作为 $0$1 反向引用访问;当您想在替换中实际使用旧 URL 时,通常会使用它,因为它的使用更加明确。

它们都匹配相同的东西,但产生不同的反向引用组。

关于regex - RewriteRule : ^ vs ^(. *)$ 与 ^.*$ 有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907493/

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