Regex 如何将www加入现有的非www重写规则
我正在尝试将www添加到现有的非www重写中:Regex 如何将www加入现有的非www重写规则,regex,apache,.htaccess,mod-rewrite,rewrite,Regex,Apache,.htaccess,Mod Rewrite,Rewrite,我正在尝试将www添加到现有的非www重写中: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 我试过: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
我试过:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
#Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
我如何加入这两个重写规则 您可以使用:
RewriteEngine On
#Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
明亮的谢谢。我明白你为什么把它移到-d-f-l上面了。你能解释一下/$1和{REQUEST_URI}之间的区别,以及你为什么添加了NE吗。如果解释太多,请告诉我一些好的读物,如果你知道的话。你可以检查
NE
是用于noescape
,/$1
与%{REQUEST\u URI}
几乎相同,但是如果.htaccess在子目录中,那么它们代表不同的值。