Перенаправить каждый поддомен в один каталог - PullRequest
0 голосов
/ 07 июня 2019

Это почти то же самое, что и .htaccess переписать поддомен в каталог

, это решение работает:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^([^.]+)\.jcubic\.atthost24\.pl$
RewriteRule ^((?!subdomains/).*)$ /subdomains/%1/$1 [L,NC,QSA]

, но я бы хотел переслать, но без каталога / subdomainsпоэтому

http://img.jcubic.atthost24.pl/.* следует читать http://jcubic.atthost24.pl/img/.*

Возможно ли это?Это не работает

RewriteRule ^((?!%1/).*)$ /%1/$1 [L,NC,QSA]

Я не уверен, какая у меня версия Apache.

1 Ответ

1 голос
/ 07 июня 2019

Вероятно, это то, что вы ищете:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^img\.jcubic\.atthost24\.pl$
RewriteRule ^/?(.*)/?$ /img/$1 [END,QSA]

Обратите внимание, однако, что вы должны попытаться поместить такие правила в конфигурацию хоста http-сервера вместо использования динамических файлов конфигурации (".htaccess").

Однако вышеприведенное правило будет работать в обеих ситуациях.

Если вы получили внутреннюю ошибку (http status 500), проверьте файл журнала ошибок.Если он жалуется на неизвестный флаг END, то вы, вероятно, используете очень старую версию http-сервера apache.В этом случае попробуйте флаг L, он будет работать здесь так же, хотя на самом деле это зависит от конкретной ситуации.

ОБНОВЛЕНИЕ, согласно вашему комментарию:

В случае, если имя хоста "img" будет обрабатываться динамически, вы можете сделать это:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.]+)\.jcubic\.atthost24\.pl$
RewriteRule ^/?(.*)/?$ /%1/$1 [END,QSA]

Может быть, выхотите добавить проверку того, существует ли эта папка в физической файловой системе http-сервера.

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