0

我对虚拟主机 apache 文件和 htaccess 有一些问题。我有 apache,昨天更新到 2.6。我在上面安装了 2 个虚拟域,并禁用了默认域。一切正常,网站加载正常,没有问题。

第一个虚拟域有一个带有 +50 重写条件的 htaccess,它们都工作正常!我试图向第二个域添加一些条件,但那些重写目录的条件不起作用。

这是条件:

RewriteRule ^user/([a-zA-Z0-9_-]+)$ index.php?username=$1
RewriteRule ^user/([a-zA-Z0-9_-]+)/$ index.php?username=$1

在那里,每个域的“可用站点”apache配置文件(只有相关的东西):

域 1:

ServerAdmin webmaster@localhost
    ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /var/www/domain1.com/public_html
<Directory />
    Options FollowSymLinks
    AllowOverride ALL
</Directory>
<Directory /var/www/domain1.com/public_html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride ALL
    Order allow,deny
    allow from all
</Directory>

域2:

ServerAdmin webmaster@localhost
    ServerName domain2.com
ServerAlias www.domain2.com
DocumentRoot /var/www/domain2.com/public_html
<Directory />
    Options FollowSymLinks
    AllowOverride ALL
</Directory>
<Directory /var/www/domain2.com/public_html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride ALL
    Order allow,deny
    allow from all
</Directory>

如您所见,除了主文件夹的路径之外,它们之间没有区别。我不明白它有什么问题。为什么第一个域完美运行而第二个域没有。

一些事情:

答:domain2 htaccess 文件上的任何其他条件都可以正常工作,例如将简单的 html 重定向到 php,或错误处理程序,或者只是重定向到测试。

B:我在我的第一个域 htaccess 文件中粘贴了相同的重写条件,它工作得很好!

看起来 apache 配置文件无法正常工作。

有什么我必须检查/更改的吗?

我会感谢任何帮助,并为我的英语感到抱歉。

4

1 回答 1

1

试一试它的测试和工作:

Options +FollowSymLinks -MultiViews 

RewriteEngine On
RewriteBase /

RewriteRule ^user/([a-z0-9_-]+)/?$ /index.php?username=$1 [NC,L]

我相信问题在于您已MultiViews启用,您也可以像我上面所做的那样将您的 2 条规则恢复为 1 条。

这应该进入.htaccess您的域2。

作为旁注,您不需要 2 个目录指令,您可以删除这个:

<Directory />
    Options FollowSymLinks
    AllowOverride ALL
</Directory>

并保持:

<Directory "/var/www/domain2.com/public_html">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride ALL
    Order allow,deny
    allow from all
</Directory>
于 2013-09-17T02:14:35.553 回答