301使用.htaccess和Apache重定向



我正试图在Apache服务器上使用以下.htaccess将服务器上的路径重定向到子域:

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

然后我重新启动Apache服务,但重定向被忽略。我错过了什么

您应该尽量避免在同一上下文中混合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服务。。。

如果只更改.htaccess,则无需重新启动Apache。

最新更新