Карта поддоменов в подкаталог

У меня есть веб-приложение, которое должно иметь динамический поддомен для каждой компании. И на сайте тоже есть SSL. Я использую Apache на Ubuntu VPS. Что я сделал, я сделал настройки виртуального хоста, как показано ниже

<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com
Redirect permanent / https://domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName domain.com
ServerAlias *.domain.com
..........
.................
</VirtualHost>

Направление трафика на SSL в порядке.

Итак, что мне нужно сделать сейчас, это то, что у меня есть папка / app в моем веб-корне. Я хочу, чтобы все поддомены направлялись в эту конкретную папку и показывали один и тот же URL в адресной строке.

Я включил модуль http_proxy в php и сделал это .htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/app/$1 [P,NC,QSA]

Когда я в гостяхhttps://test.domain.com«это перенаправляет его на»https://domain.com/app/index.phpMsgstr «Я знаю, почему это происходит, потому что когда происходит перенаправление htaccess»http://domain.com/app/index.php«Моя конфигурация виртуального хоста видит запрос не-SSL и перенаправляет запрос на тот же адрес с SSL. Поэтому я изменил .htaccess на этот

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ https://domain.com/app/$1 [P,NC,QSA]

Я вставил «https» в правило перезаписи. когда я снова приедуhttps://test.domain.com«Это дало мне эту ошибку.

Internal Server Error

The server encountered an internal error or misconfiguration and was
unable to complete your request.

Please contact the server administrator at webmaster@localhost to
inform them of the time this error occurred, and the actions you
performed just before this error.

More information about this error may be available in the server error
log.

Apache/2.4.7 (Ubuntu) Server at kjdcndkj.domain.com Port 443

Наконец то, что я хочу, это

1) redirect any Non-SSL trafic to SSL
2) any *.domain.com to /app folder

Может ли кто-нибудь помочь мне в этом

Спасибо.

1

Решение

Попробуй это:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.domain\.com [NC]
RewriteRule ^(.*)$ %1/$1 [L]
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]