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

Lar*_*eep 5 apache .htaccess mod-rewrite codeigniter

我到处寻找解决方案,但找不到我想要的确切解决方案.我不擅长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]
Run Code Online (Sandbox Code Playgroud)

创建子域后,它在前面添加"www"并重定向到主站点而不是子域.

For example: folder.domain.com -> becomes -> www.folder.domain.com (displayes the main site)
Run Code Online (Sandbox Code Playgroud)

我在这个htaccess中需要做什么修改?

  1. 强制执行"www".
  2. 如果它不是"www",也允许子域.
  3. 加上".net"中的subdomin网址也会重定向到".com"

顺便说一句,我的主要网站是在codeigniter,我也有这个:

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

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

简单的方法是修改(添加"博客")

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

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

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

谢谢

anu*_*ava 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]
Run Code Online (Sandbox Code Playgroud)