^
在 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]