.htaccess非www重定向到根文件夹的子文件夹

时间:2014-02-20 09:24:56

标签: apache .htaccess mod-rewrite redirect ssl

我知道网站上经常讨论这个话题。 但是我面临同样的问题而且无法解决与.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,并将主域重定向到子目录。

1 个答案:

答案 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]