在 .htaccess 文件中:
Redirect 301 /john-biography.php /about
当我在浏览器中输入 domain.com/john-biography.php 时,它变成:
domain.com/about?/john-biography.php
这是正常现象还是可以采取什么措施来防止这种情况发生?
最佳答案
这种行为通常是由于 mod_alias (Redirect
) 和 mod_rewrite 之间的冲突,其中 URL 被重定向到外部,而 URL 已经被 mod_rewrite 在内部重写。
在那种情况下,你不应该使用 mod_alias 而应该只使用 mod_rewrite。因此,只需将您的指令转换为等效的 mod_rewrite 即可:
RewriteRule ^john-biography\.php$ /about [L,R=301]
将此放在您在内部重写的其他规则之前。
关于apache - 重定向 301 - 为什么要添加问号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565526/