我知道网站上经常讨论这个话题。 但是我面临同样的问题而且无法解决与.htaccess reqrite相关的问题。
目前的情况是我强迫使用www。到我的域并重定向到子目录并用作域根。
我的.htaccess文件中有以下条目。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ subfolder/index.php
通过强制使用www,一切正常。对于doamin和重定向到子文件夹
由于我拥有适用于domain.com的ssl证书,因此ssl证书不接受www.domain.com。
现在我需要强制非www,并将主域重定向到子目录。
答案 0 :(得分:1)
你可以这样:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(domain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1 [L]
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(/)?$ /subfolder/index.php [L]