htaccess强制执行“www”但允许子域访问

时间:2014-01-24 13:33:20

标签: apache .htaccess codeigniter mod-rewrite

我到处寻找解决方案,但找不到我想要的确切解决方案。我不擅长htaccess的东西。需要一些帮助。

我已经在我的htaccess文件中强制执行“www”,当我尝试创建子域时,它已经开始了。

我正在使用此设置,我发现它到目前为止它的工作正常,没有子域。

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

RewriteCond %{HTTP_Host} ^(www\.)?example\.net$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

创建子域后,在前面添加“www”并重定向到主站点而不是子域。

For example: folder.domain.com -> becomes -> www.folder.domain.com (displayes the main site)

在此htaccess中我需要进行哪些修改?

  1. 执行“www”。
  2. 如果不是“www”,也允许子域名。
  3. 加上“.net”中的subdomin网址也会重定向到“.com”
  4. 顺便说一下,我的主站点是在codeigniter中,我也有这个:

    RewriteCond $1 !^(index\.php|js|media|style)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    想在子文件夹上安装博客并将其用作子域名。

    简单方法是修改(添加“博客”)

    RewriteCond $1 !^(index\.php|js|media|style|blog)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    然后我访问它为www.domain.com/blog

    但我希望它整洁干净,以便控制器创建的URL不会与子文件夹冲突。可能不允许直接访问子文件夹。

    由于

2 个答案:

答案 0 :(得分:2)

你的规则如下:

RewriteCond %{HTTP_HOST} ^mainsite\.com$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP_Host} ^(.+?)\.net$ [NC]
RewriteRule ^(.*)$ http://%1.com/$1 [L,R=301]

答案 1 :(得分:0)

我找到了解决方案。也可能对其他人有帮助。

我做了修改

RewriteCond %{HTTP_HOST} !^www\.

RewriteCond %{HTTP_HOST} ^mainsite\.com$ [NC]

Anubhava

建议

然后改变了

RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteRule ^(blog.*)$ /index.php/$1 [L]

对于“.net”到“.com”子域重定向,我添加了

RewriteCond %{HTTP_Host} ^(blog\.)?mainsite\.net$ [NC]
RewriteRule ^(.*)$ http://blog.mainsite.com/$1 [L,R=301]

并在我的主机中添加了托管域名。

现在一切都很完美。

谢谢!