.htaccess:如何只重写.php网址?

时间:2009-03-29 07:26:20

标签: .htaccess mod-rewrite

我的重写条件工作正常如下:

http://www.sitename.com/index.php?n=text重定向到 http://www.sitename.com/pages/text

并且页面呈现正确,但是,存在一个问题,即重定向的URL中的参数也会添加到URL中。所以实际上在地址栏中它看起来像 -

http://www.sitename.com/pages/text?n=text

有人可以帮我这个吗? htaccess代码如下所示。

RewriteCond %{QUERY_STRING} ^n=(.*)$
RewriteRule index.php http://www.sitename.com/pages/%1 [r=301,nc]

3 个答案:

答案 0 :(得分:1)

你可能想要抓住“index.php.*”。否则,mod_rewrite只会使用新网址替换网址“index.php”的“index.php?n=text”部分。

答案 1 :(得分:0)

摊铺,

根据你的建议,我重建如下:

RewriteCond %{QUERY_STRING} ^n=(.*)$
RewriteRule index.php.* http://www.sitename.com/pages/%1 [r=301,nc]

这似乎也没有用。你能详细说明你所说的话吗?

谢谢你 阿迪亚

答案 2 :(得分:0)

不要在重写规则中使用url,apache然后发送一个http 200代码然后发送301 ...

试试吧......像这样:

RewriteRule (index\.php)(?n=)(.*) /pages/$3 [r=301]