У меня есть один URL (домен), для нескольких каталогов (проект).И у меня очень странное поведение при добавлении в него .htaccess.
sub.mywebsite.com/
=> /foo/bar/things
sub/mywesite.com/pro
=> /srv/www/new
VirtualHost:
<VirtualHost *:80>
DocumentRoot /foo/bar/things
ServerName sub.mywebsite.com
Alias /pro /srv/www/new
</VirtualHost>
И это работает отлично.Когда я продолжаю sub.mywebsite.com/
, он попадает в /foo/bar/things
dir и наоборот.
Теперь давайте добавим простой .htaccess
в /srv/www/new
:
RewriteEngine on
RewriteRule ^(.*)/$ php/file.php?text=$1 [L,QSA]
Поэтому, когда я продолжаю sub.mywebsite.com/pro/hello/
, файл, который называется, должен быть /srv/www/new/php/file.php
с аргументом GET.Я дважды проверил, правило хорошее.
Вот конец RewriteLogLevel 4:
192.168.123.123 - - [25/Apr/2018:19:28:11 +0200] [sub.mywebsite.com/sid#7f317dd08b8][rid#7f37eca9f78/initial] (1)
[perdir /srv/www/new/] internal redirect with /srv/www/new/php/file.php [INTERNAL REDIRECT]
И онлайн-проверка htaccess подтвердите это: The new url is http://sub.mywebsite.com/php/file.php%3Ftext=testing
Но я 'у нас есть Apache 404 не найден:
Not Found
The requested URL /srv/www/new/php/file.php was not found on this server.
И да, ls -l /srv/www/new/php/file.php
файл существует.
ОЧЕНЬ ОДД часть такова: в журнале ошибок Apache, я получил:
[Wed Apr 25 19:45:30 2018] [error] [client 192.168.123.123] File does not exist: /foo/bar/things/srv
Вопросы :
- Какого черта это?Почему файл в error_log отличается от файла, отображаемого в моем браузере?
- Почему apache не может загрузить нужный файл
/srv/www/new/php/file.php
, если его спросить .htaccess?
Не стесняйтесь спрашивать у меня больше данных, если это необходимо.Я хочу понять!
Примечание: в /foo/bar/things
нет .htaccess;Я много чего перепробовал в своем vhost, например добавив <directory>
и т. Д.