我发现有很多问题要问如何做到这一点但是没有一个能为我工作:
####TRYING TO HANDLE WWW HERE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,NC,L]
</IfModule>
####WORDPRESS RULES
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
####CAKEPHP RULES
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !^/$
RewriteRule (.*) app/webroot/$1 [L]
我想这样做,以便任何非WWW URL重定向到WWW。*等效。目前,无论我做什么,我都会得到一个重定向循环。
我正在尝试避免对网址进行硬编码,因为它需要在几个不同的服务器上运行,包括子网域上的一些服务器:sub.example.com - &gt; www.sub.example.com
答案 0 :(得分:1)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=301,L]
</IfModule>
一直对我有用。您可能不需要IfModule的东西。当然,你是在Apache服务器上,对吗? IIS和其他Windows服务器无法识别.htaccess。
答案 1 :(得分:0)
你可以试试这个:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.yoursite\.com
RewriteRule (.*) http://www.yoursite.com/$1 [R=301,L]
它始终适合我。