English 中文(简体)
.htaccess:如何仅重写.php网址?
原标题:
  • 时间:2009-03-29 07:26:20
  •  标签:

我的带有条件的重写规则可以正常工作,如下:

http://www.sitename.com/index.php?n=text redirects to 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]
问题回答

你可能想要匹配"index.php.*"。否则,mod_rewrite只会将URL "index.php?n=text" 中的"index.php"部分替换为新的URL。

高斯

根据你的建议,我重构了它,如下所示:

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

这似乎也不起作用。您可以详细说明一下吗?

thank you aditya

不要在重写规则中使用URL,否则Apache会先发送HTTP 200代码,然后再发送301代码...

尝试这样做:

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




相关问题
热门标签