.htaccess / apache - «ошибка 404» при попытке молча перенаправить в файл на основе поддомен - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть http://s.example.com. Я хочу http://s.ioixd.example.com, чтобы перенаправить в папку "/ sites / ioixd /" без вывода сообщений через прокси.Так что у меня есть это правило в / sites / in .htaccess (поскольку s. *. Example.com перенаправляет в эту папку)

RewriteEngine on
RewriteCond %{HTTP_HOST} s\.(.*)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://s.example.com/sites/%1/$1 [L,P]

Оно работает нормально, только с [L].Проблема возникает, когда я изменяю это на [L, P] (потому что я хочу, чтобы это было перенаправление молчания / прокси), и я получаю эту ошибку:

Не найдено

запрошенный URL /index.html не был найден на этом сервере.


Сервер Apache / 2.4.25 (Debian) по адресу s.ioixd.ioi-xd.net Порт 80

Но index.html СУЩЕСТВУЕТ, и когда я перехожу к http://s.example.com/sites/ioixd вручную, он показывает содержимое файла index.html, который является просто словом «эй» (для тестирования).Это не возможно?Что я делаю не так?

1 Ответ

0 голосов
/ 01 марта 2019

Решение существует во всем Интернете, но одна важная деталь никогда не упоминается, поэтому я потратил целый день, пытаясь использовать .htaccess.

В оболочке запустите

sudo a2endmod vhost_alias

Затем в apache.conf добавьте что-то вроде этого:

<VirtualHost *:80>
    ServerName anything.s.example.com
    ServerAlias s.*.example.com
    VirtualDocumentRoot /var/www/example/sites/%2/
</VirtualHost>

Вам нужно добавить модуль vhost_alias, иначе apache будет аварийно завершать работу, потому что он не знает, чтоделать с частью "VirtualDocumentHost"..htaccess не будет работать так, как описано выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...