301 редирект с .htaccess и Apache - PullRequest
       1

301 редирект с .htaccess и Apache

0 голосов
/ 07 ноября 2018

Я пытаюсь перенаправить путь на моем сервере в поддомен со следующим .htaccess на моем сервере Apache:

Redirect 301 /shop test.foobar.com/

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^ index.php [L]
</IfModule>

Затем я перезапускаю службу Apache, но перенаправление игнорируется. Чего мне не хватает

1 Ответ

0 голосов
/ 07 ноября 2018

Следует избегать смешивания директив mod_rewrite (RewriteRule) и mod_alias (Redirect) в одном контексте. Mod_rewrite будет выполняться первым, несмотря на очевидный порядок директив в .htaccess.

Однако ваша директива Redirect полностью недействительна (вы пропускаете протокол из целевого URL) - это не следует игнорировать? На самом деле, я ожидаю, что это сломает ваш сервер с 500 Внутренняя ошибка сервера - «Перенаправление на не-URL»!?

Попробуйте вместо этого следующее:

RewriteEngine On

RewriteRule ^shop$ https://test.foobar.com/ [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^ index.php [L]

Вам необходимо очистить кеш браузера перед тестированием, поскольку любые ошибочные 301 (постоянные) перенаправления будут кэшироваться браузером.

Измените его на 301, только когда вы уверены, что он работает нормально.

Затем я перезапускаю службу Apache ...

Нет необходимости перезапускать Apache, если вы изменяете только .htaccess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...