RewriteCond & RewriteRule для правильного перенаправления и переопределения статуса 301 в файле .htaccess

У меня есть приложение для Android, которое загружает скрипт http://example.com/apps-support/ads/ads.php ? appName = my_app ( my_app может измениться). Мой хостинг-провайдер внес некоторые изменения на сервере несколько дней назад, и приведенный выше сценарий начал возвращать статус 301 Moved Permanently . Теперь, когда я запрашиваю свой скрипт, он возвращает статус 301 перемещен постоянно , а затем перенаправляет в корень ( https://example.com?appName=my_app ). Почему происходит перенаправление? 301 status redirect to the root Логика в приложении Android перехватывает это перенаправление и пытается открыть этот URL (раньше работает нормально, потому что перенаправлений не было). Ситуация усугубляется тем фактом, что у меня нет возможности обновить приложение, чтобы исправить эту проблему (т.е. заменить http на https ). Мой провайдер по какой-то причине тоже не может решить эту проблему. Таким образом, на мой взгляд, единственное решение - изменить файл .htaccess . Итак, я хочу, чтобы сервер перенаправил мой запрос на https и в то же время возвратил (переопределил) статус 200 , как показано ниже: proper redirection Возможно ли это?

Мой .htaccess файл, расположенный в корне:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} ^appName=(.*)$
RewriteRule ^http://example.com/apps-support/ads/ads.php$ https://example.com/apps-support/ads/ads.php?%{QUERY_STRING} [R=301,L]

К сожалению, он не работает. Любая помощь будет принята с благодарностью.

0
задан 27 June 2019 в 07:28
1 ответ

Наконец, мой хостинг-провайдер помог мне решить эту проблему. Мне пришлось изменить мой файл .htaccess , как показано ниже:

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/apps-support/ads/ads.php1$
RewriteRule (.*) https://example.com/$1 [L,R=301]

Теперь все работает, как ожидалось.

0
ответ дан 23 November 2019 в 23:15

Теги

Похожие вопросы