将裸域重定向到www。在子文件夹中

时间:2014-09-05 10:25:45

标签: regex apache .htaccess mod-rewrite redirect

我在一个主机帐户上托管多个域,因此我在每个域的public_html文件夹中创建了文件夹。

e.g。家用/用户名/的public_html / examplewebsite.com / 和 家/用户名/的public_html / otherexamplewebsite.com /

我一直试图在我的htaccess文件中找出我需要的代码,当他们输入examplewebsite.com时,将访问者重定向到相应的子文件夹,这样他们就不会看到他们了在主域的子文件夹中。我最初找到了这段代码,它起作用了:

Options -Indexes +SymLinksIfOwnerMatch 
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/domainfolder/
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.
#Rewrite all those to insert /folder
RewriteRule ^(.*)$ /domainfolder/$1 [L]

但我还想将所有输入裸域的访问者重定向到www。版。我找到了这段代码,但是当我在htaccess文件中使用它们时,你可以再次在url中看到子文件夹名称:

#Only www, no naked domain
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

我不太了解所有这些代码,所以如果你们中的任何一位大师都能帮我找出解决方案,我会非常感激!

1 个答案:

答案 0 :(得分:1)

在root .htaccess中保留这样的规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{HTTP_HOST} ^(www\.)?domainname\. [NC]
RewriteRule !^domainfolder/ domainfolder%{REQUEST_URI} [L,NC]