htaccess rewriteCond игнорируется - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу, чтобы все трафики c перенаправлялись с app.foo.bar.com на maintenance.foo.bar.com, кроме URL-адресов, содержащих строку api, ref / mail и track. php.

#maintenance routing
RewriteCond %{REQUEST_URI} !api
RewriteCond %{REQUEST_URI} !ref/mail
RewriteCond %{REQUEST_URI} !track.php
RewriteCond %{HTTP_HOST} ^(?:www\.)?(?:admin\.)?(?:app\.)?(.+)$
RewriteRule ^.*$ http://maintenance.%1/ [QSA,L]

# basic framework routing
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Это не работает.

Рабочий пример:

Пример URL: http://app.foo.bar.com/

Результат: http://maintenance.foo.bar.com/

Пример не работает:

Пример URL: http://app.foo.bar.com/api/objects?token=foobarfoobarfoobar

Результат: http://maintenance.foo.bar.com/?url=api/objects&token=foobarfoobarfoobar

Что отсутствует или не так?

1 Ответ

0 голосов
/ 20 февраля 2020

Мне пришлось добавить RewriteCond %{QUERY_STRING} !api, чтобы решить проблему. В результате «api» находится в строке запроса вместо uri запроса.

...