У меня проблемы с редиректом, который я делаю для веб-сайта.
Система, в которой я звоню, чтобы пользователи имели свой собственный адрес, как в
http://user1.domain.com/
с возможными именами файлов, как в
http://user1.domain.com/file.html
Это перенаправлено на http://www.domain.com/php?user=user1&file=file.html
Эта часть работает нормально, так как я уже настроил перенаправление с подстановочными знаками через cpanel;
*.domain.com
перенаправляет на www.domain.com/users/
, (Я не могу перенаправить в корень, так как есть другая система с тяжелым .htaccess, которая уже работает там, и я попытался, но, похоже, перехватывает то, что я пытаюсь сделать, и перенаправляет меня на индекс .php).
в users
папка, где находится мой .htaccess-файл.
Это написано как таковое
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^(.*)(.html)?$ http://www.domain.com/php?user=%1&file=$1 [P]
Проблема, однако, в том, что если я использую флаг [P] в последнем правиле, сервер просто отключится, и запрос завершится.
Если я использую флаг [L], перезапись работает как задумано, но URL перенаправляется на www.domain.com/php?user=user1&file=file.html
Я хочу, чтобы пользователь увидел
user1.domain.com/file.html
в то время как содержание от
www.domain.com/php?user=user1&file=file.html
отображается.
Из того, что я (думаю, я) могу сказать, включены mod_proxy и mod_proxy_http, в противном случае флаг [P] вызовет ошибку 500.
Я не вижу, что я делаю неправильно, и я не могу понять это.
У меня нет доступа к httpd.conf или другим конфигурациям сервера, так как это сервис общего хостинга.
Пожалуйста помоги.
Задача ещё не решена.
Других решений пока нет …