Apache .htaccess混乱的重写规则

Apache .htaccess混乱的重写规则,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我需要一些帮助来清理一个.htaccess文件,该文件一直在我们的一台工作服务器上运行 它当前设置为,如果有人键入example.com,它将重定向到www.example.com。问题是我们希望使用子域,但当我们尝试添加子域时,如beta.example.com,它将重定向到www.beta.example.com 这是.htaccess文件 DirectoryIndex index.html index.php RewriteEngine On RewriteBase / RewriteC

我需要一些帮助来清理一个.htaccess文件,该文件一直在我们的一台工作服务器上运行

它当前设置为,如果有人键入
example.com
,它将重定向到
www.example.com
。问题是我们希望使用子域,但当我们尝试添加子域时,如
beta.example.com
,它将重定向到
www.beta.example.com

这是
.htaccess
文件

DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?/$1 [L]
我已经尝试了许多不同的问题,从这里开始,通过Google和htaccess生成器,它们似乎都没有帮助,因为它们通常会将站点置于重定向循环中

任何关于正确配置的帮助都将不胜感激


--Chris

若要在没有子域时自动将www添加到域名,请将其添加到文档根目录中的htaccess文件中::
重写引擎打开
重写条件%{HTTP\u HOST}^[^.]+\.[^.]+$

重写规则^(.*)$http://www.%{HTTP_HOST}/$1[L,R=301]

这种方法很有效。除此之外,该网站有一个门户
www.example.com/dashboard/portal
,当您在更改
.htaccess
后转到该门户时,门户显示一个404未找到。请指定一个文档根目录树以及index.php和htaccess不确定我是否理解。有代码示例吗?不清楚index.php和htaccess相对于站点文档根的位置。htaccess与index.php文件位于同一文件夹中该文件夹是否为文档根?注意,
$1
是一个请求uri,从根目录到当前文件夹都有丢弃的前缀。改为使用
%{REQUEST_URI}
,不带前斜杠。