Я пытаюсь настроить правило перезаписи, чтобы при вводе URL-адреса он отображался как example.com/test
.
Например, я пытаюсь сделать это, если это вообще возможно.
Я установил CNAME так, site.example.com
чтобы он указывал на site.devexample.com
(dev Remote Environment на стороне поставщика)
Если пользователь зайдет на страницу, site.example.com
URL-адрес будет переписан примерно так example.com/test
.
То, что у меня есть до сих пор, но, похоже, не работает, когда я прихожу, site.example.com
остается таким, как есть.
# rewrite rules for site.example.com
RewriteCond %{http_host} ^site\.example\.com [NC,OR]
RewriteCond %{http_host} ^www\.site\.example\.com [NC]
RewriteRule $ http://example.com/test/ [R,L]
Нужно ли мне будет сделать обратный прокси-сервер и затем перезаписывать оттуда?
EDIT: Прошу прощения, мне следовало объяснить немного лучше. site.example.com принадлежит test.com (компании A). Поэтому мы изменили CNAME, чтобы он указывал на site.devEnvironment.com ( companyB.com )
и test.com/test — это наш сервер и каталог, пытаемся переписать URL на test.com/test вместо site.example.com
Наши перенаправления настроены в файле httpd.conf, не уверен, поможет ли это.
решение1
Я предполагаю, что rewritecond или rewritemap regex не совпадают. Я обнаружил, что они скользкие.
Убедитесь, что у вас очень подробное ведение журнала mod_rewrite (набор Apache 2.4)LogLevel, Apache 2.2 установленПереписатьЖурнал) Если вы не являетесь администратором веб-сервера, это вам, скорее всего, не поможет.
Попробуйте переписать правило следующим образом:
RewriteRule ^foobar /clams/%{HTTP_HOST}/fish [R,L]
Поскольку foobar
это бессмысленное местоположение, оно не будет мешать реальному трафику. Укажите в своем браузере, foobar
и он перенаправит вас на другое бессмысленное местоположение и выдаст ошибку, но в строке URL также будет указано, что именно %{HTTP_HOST}
содержит var. (Моллюски и рыбы должны выступать в качестве кавычек, поэтому если %{HTTP_HOST}
содержит косую черту или пробел или другой сложный символ, вы это увидите.)
(удалено из foobar для совместимости с .htaccess, спасибо @w3dk)
решение2
В итоге я настроил proxypass /test site.example.com
Таким образом, когда сервер увидит /test, он загрузит контент с site.example.com