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

时间:2011-07-03 20:59:58

标签: apache .htaccess seo

在.htaccess文件中:

Redirect 301 /john-biography.php /about

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

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

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

2 个答案:

答案 0 :(得分:3)

来自Apache manual for mod_alias

The new URL should be an absolute URL beginning with a scheme and hostname.

所以试试:

Redirect 301 /john-biography.php http://www.yourdomain.com/about

答案 1 :(得分:3)

此行为通常用于mod_alias(Redirect)和mod_rewrite之间的冲突,其中URL被外部重定向,已由mod_rewrite在内部重写。

在这种情况下,你不应该只使用mod_alias而只使用mod_rewrite。所以只需将你的指令转换为mod_rewrite等价物:

RewriteRule ^john-biography\.php$ /about [L,R=301]

将其放在内部重写的其他规则之前。