将所有请求重定向到index.php(子域除外)

时间:2015-01-22 20:32:06

标签: regex .htaccess routing cpanel addon-domain

我正在使用AltoRouter :( http://altorouter.com/)我根据安装中的建议修改了.htaccess:

重写发动机 RewriteCond%{REQUEST_FILENAME}! - f
重写规则。 index.php [L]

这样index.php可以处理所有请求。我的问题是我在cpanel中使用插件域,当我尝试访问与插件域关联的域之一时,我遇到了内部服务器错误。

实施例: 我的主要域名是mainsite.com。

然后我有几个网站:

site1.com,cpanel自动与site1.mainsite.com关联,并创建文件夹mainsite.com/site1.com。因此,如果我访问site1.com,我会在浏览器site1.com中看到,但提供的内容将是mainsite.com/site.com文件夹中的内容。

如果我不使用.htaccess规则但是我需要它来进行路由,这是有效的。如果我有这个规则,每次访问site1.com时都会出现内部服务器错误(我认为这是cpanel规则和.htaccess之间的冲突)。

如何修改规则以便它只影响maindomain而不影响子域?我假设通过这样做不会发生冲突,我的问题就会解决。

我非常擅长.htaccess和正则表达式,但我愿意在必要时学习。如果你能指出我正确的方向,我仍然会很感激。 (无论是在想法还是在可以帮助我理解这一点的好网站上)

1 个答案:

答案 0 :(得分:1)

  

如何修改规则以便它只影响maindomain而不影响子域?

您可以根据主机名添加新条件:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(?:www\.)?mainsite\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
相关问题