我的重写条件工作正常如下:
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]
答案 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]