重定向 301 - 为什么要添加问号?

use*_*378 1 apache .htaccess seo

在 .htaccess 文件中:

Redirect 301 /john-biography.php /about
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中输入 domain.com/john-biography.php 时,它变成:

domain.com/about?/john-biography.php

这是正常的还是可以做些什么来防止这种情况发生?

Gum*_*mbo 5

这种行为通常是因为 mod_alias ( Redirect) 和 mod_rewrite之间的冲突,其中一个 URL 被外部重定向,而这个 URL 已经被 mod_rewrite 在内部重写。

在这种情况下,您不应仅使用 mod_alias 而应使用 mod_rewrite。因此,只需将您的指令转换为 mod_rewrite 等效项:

RewriteRule ^john-biography\.php$ /about [L,R=301]
Run Code Online (Sandbox Code Playgroud)

把它放在你内部重写的其他规则的前面。