Я настроил свой apache так:
<VirtualHost *:80>
ServerName www.th3falc0n.de
ServerAlias th3falc0n.de *.th3falc0n.de
DocumentRoot /var/www/html/th3falc0n
<Directory /var/www/html/th3falc0n>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.lolhens.org
ServerAlias lolhens.org *.lolhens.org
DocumentRoot /var/www/html/lolhens
<Directory /var/www/html/lolhens>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
У меня есть .htaccess в / var / www / html / th3falc0n, который перенаправляет th3falc0n.de на th3falc0n.de/p/home и некоторые другие вещи. Однако эти правила также применяются к lolhens.org, что не является ожидаемым поведением. В чем я виновата? Как я могу добиться, чтобы .htaccess применялся только для th3falc0n.de?
Вывод apache2ctl -S
root@v36448:~# apache2ctl -S
VirtualHost configuration:
*:80 is a NameVirtualHost
default server www.th3falc0n.de (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost www.th3falc0n.de (/etc/apache2/sites-enabled/000-default.conf:1)
alias th3falc0n.de
wild alias *.th3falc0n.de
port 80 namevhost www.lolhens.org (/etc/apache2/sites-enabled/000-default.conf:15)
alias lolhens.org
wild alias *.lolhens.org
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
Поскольку у меня было несколько предложений переместить содержимое .htaccess в конфигурацию сайта: это не вариант, так как пользователь, управляющий lolhens.org, не должен иметь доступа к конфигурации сервера, но иметь возможность использовать .htaccess, и я хочу сохранить это согласован для всех возможных пользователей.
РЕДАКТИРОВАТЬ:
Узнав, что http://www.lolhens.org нет проблем с .htaccess, но это произойдет на http://lolhens.org Я пробовал другую такую конфигурацию:
<VirtualHost *:80>
ServerName th3falc0n.de
ServerAlias *.th3falc0n.de
DocumentRoot /var/www/html/th3falc0n
<Directory /var/www/html/th3falc0n>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName lolhens.org
ServerAlias *.lolhens.org
DocumentRoot /var/www/html/lolhens
<Directory /var/www/html/lolhens>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Однако результат остается прежним. www.lolhens.org работает как положено, lolhens.org - нет.
Если какой-либо контент с www.lolhens.org обслуживается из / var / www / html / th3falc0n, то файл .htaccess будет обработан, даже если пользователь запросил другой домен.
Иэн прав: поскольку у вас, по-видимому, есть доступ к файлам конфигурации, самым простым решением является удаление файла .htaccess, перемещение его директив в VirtualHost для www.th3falc0n.de и отключение .htaccess, установив AllowOverride none
. Увидеть Учебник по файлу Apache htaccess.
Я только что понял, что ошибка была в кеше моего локального браузера, который сохранил перенаправление для lolhens.org. Вторая конфигурация теперь работает.