Левая сторона или шаблон вашего RewriteRule должен быть просто именем файла, которому вы хотите соответствовать, например, ^/AA$
.Если вы также хотите убедиться, что хост и порт соответствуют определенным значениям, вы должны настроить RewriteCond для соответствия %{HTTP_HOST}
и %{SERVER_PORT}
.Однако последнее может быть ненужным, если ваш веб-сервер не настроен для нескольких доменов и портов.
Это не проверено, но что-то вроде этого:
RewriteCond %{HTTP_HOST} ^localhost
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/AA$ http://localhost:8090/BB
Я бы порекомендовал вам попробовать именно этосначала:
RewriteRule ^/AA$ http://localhost:8090/BB
и добавьте RewriteCond, если они вам нужны.
Редактирование на основе комментариев : Если вы пытаетесь избежать ответа "302", выне может сделать это для ситуации, которую вы описываете.Когда вы используете mod_rewrite для перенаправления с одного хоста на другой, вы получите два ответа, отправленных в ваш браузер.Первый - 302, который говорит браузеру перейти ко второму URL.Второй ответ должен быть 200.
С mod_rewrite вы можете избежать перенаправления в середине, если перезапись происходит с одной страницы на другую на том же сервере и порту .В этом случае перезапись является внутренней, и веб-сервер может ответить страницей BB, даже если запрос относится к AA.Если вы используете другой сервер или порт, веб-сервер для AA не имеет доступа к странице BB, поэтому он отвечает перенаправлением на сервер, который имеет доступ.
Если вы можете перенастроить свой сайт наиспользуйте один и тот же порт для AA и BB, вы можете заставить его работать.Если нет, я думаю, что вы могли бы делать то, что вы хотите с mod_proxy .Я никогда не использовал mod_proxy, поэтому я не уверен, что вам нужно будет сделать.