Следует избегать смешивания директив 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
.