Я настраиваю локальную среду для тестирования с использованием WAMP.
Приложение (угловое приложение) находится в каталоге /wamp /www /app /. Он отправляет запросы другому API, отправляя запросы другому маршруту на том же сервере. (Специально для /wamp /www /api /route)
У нас есть сервер dev api, который существует на http://api.com. У нас есть еще один тестовый экземпляр углового приложения по адресу http://testapp.com/app/, который может отправлять запросы на http://api.com , указывая на http://testapp.com/api/route.
Способ, которым это работает в тестовом экземпляре (не локальном), заключается в том, что у нас есть файл .htaccess по адресу http://testapp.com/api/route, который принимает запросы на http://testapp.com/api/route/ * и отправляет их на http://api.com/ *
Файл .htaccess, который делает это, выглядит следующим образом:
<IfModule mod_rewrite.c>
RewriteRule (.*) http://api.com/$1 [NC,P]
</IfModule>
Когда я копирую этот файл .htaccess в мой каталог /wamp /www /api /route /, я ожидаю следующее поведение:
Что я хочу
Приложение отправит запрос в /wamp /www /api /route /stuff /, а файл .htaccess в /route / примет этот запрос и перенаправит его на http://api.com/stuff.
Что я получаю
Приложение отправит запрос в /wamp /www /api /route /stuff / и вернет 404.
Я убедился, что AllowOverride all установлен, что механизм перезаписи включен, и что mod-rewrite включен. Я знаю, что файл .htaccess просматривается, потому что, если я добавлю в него мусор, я получу 500 вместо 404, и мой мусор попадет в журнал.
Любая помощь приветствуется! Благодарю.
После получения помощи от Purefan я включил ведение журнала перезаписи, и после включения не было попыток перезаписи, что указывало бы на то, что правило перезаписи никогда не выполняется для запросов.
Теперь я попытался изменить порядок вызова правила перезаписи.
Я создал каталог в файле конфигурации httpd следующим образом:
<Directory "c:/wamp64/www/api/route">
Options +FollowSymLinks
RewriteEngine on
<IfModule mod_rewrite.c>
RewriteRule (.*) http://api.com/$1 [NC,P]
</IfModule>
</Directory>
И я все еще получаю такое же поведение