у меня есть domain1.com
и domain2.com
.
domain1.com
это основной домен, который указывает на IP-адрес сервера 123.123.123.123
точно в каталог public_html
.
domain2.com
это домен, на который я хочу перенаправить domain1.com
без изменения URL-адреса в браузере пользователя. (Примечание: этот домен будет доменом профиля пользователя).
Итак, вместо того, чтобы вводить domain1.com/users/John
, Я напечатаю domain2.com
.
domain2.com
указывает на тот же IP-адрес 123.123.123.123
и в тот же каталог domain1.com
(public_html
).
Я указал domain2.com
на тот же сервер и каталог, чтобы получить к нему доступ из htaccess domain1.com
.
Итак, я попробовал следующее в .htaccess
из public_html
:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain2.com
RewriteRule ^(.*) https://domain1.sa/users/John/$1 [P]
Но это возвращает HTTP-код ошибки 500!
Примечание: у меня есть выделенный сервер.
RewriteEngine On RewriteCond %{HTTP_HOST} ^domain2.com RewriteRule ^(.*) https://domain1.sa/users/John/$1 [P]
Непонятно, почему это приведет к ошибке 500, если только mod_proxy или mod_rewrite не установлены или настроены неправильно? Или у вас, возможно, конфликт с другими директивами? Вы должны проверить свой журнал ошибок на предмет специфики ошибки.
Однако, если два домена указывают на один и тот же сервер / каталог, и вы хотите сохранить domain2.com
(исходный URL-адрес) в адресной строке браузера, тогда вам не придется проксировать запрос (как вы пытаетесь сделать здесь). Казалось бы, все, что вам нужно, - это простая внутренняя перезапись (в том же домене). Например:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain2\.com
RewriteRule !^users /users/John%{REQUEST_URI} [L]
Регулярное выражение !^users
состоит в том, чтобы избежать цикла перезаписи (который также проявится как ошибка 500 в браузере).
Итак, вместо того, чтобы вводить
domain1.com/users/John
, Я напечатаюdomain2.com
.
Но обратите внимание, что приведенный выше запрос отправит запрос на /users/John/
(с косой чертой в конце), а не /users/John
(без косой черты), как вы здесь заявили - это проблема?
И вы хотите переписать из /<something>
к /users/John/<something>
- согласно опубликованному вами образцу кода? Хотя это не упоминается в тексте вашего вопроса? Если вы хотите переписать запросы только для самого домена, т.е. domain2.com/
и нет domain2.com/<something>
тогда сказанное выше можно упростить. Например:
RewriteCond %{HTTP_HOST} ^domain2\.com
RewriteRule ^$ /users/John [L]