URL重写 - 查询字符串

时间:2011-04-09 18:17:31

标签: .htaccess mod-rewrite query-string

我有一个新闻(博客)网站,当选择了各个帖子时,它会以下列格式返回网址:

website.net/sitenews.php?q=posts/view/postname/12

我正在寻求重写网址,使其显示为:

website.net/sitenews.php/posts/view/postname/12

或删除?q=的任何其他方式,目的是删除?,以便facebook的类似按钮可以访问网址,因为facebook url linter不会解析查询字符串。

在根目录中的htdocs .htaccess文件中,我尝试了以下内容:

Options +FollowSymLinks 

RewriteEngine on

RewriteCond %{QUERY_STRING} q=  

RewriteRule (.*) website.net/sitenews.php/$1? [R=301]

这会成功删除q=?,但不返回字符串的其余部分(posts/view/postname/12),网址现在如下所示:

 website.net/sitenews.php/sitenews.php

有没有人有任何建议可以帮我完成这个url_rewrite?

2 个答案:

答案 0 :(得分:2)

请尝试使用.htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
RewriteRule ^(.*)$ /$1/%1? [R=301,L,NE]

R=301 will redirect with https status 301
L will make last rule
NE is for no escaping query string

%1 is capture group for query string q= (whatever comes after q=)
$1 is your REQUEST_URI

答案 1 :(得分:0)

如果您正在使用任何CMS,如wordpress,或joomla或SE,那么您可以选择执行其他操作,您需要有一个.htaccess文件,您可以在其中编写代码,请参阅此链接

http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html

http://www.webmasterworld.com/forum92/2545.htm

http://www.google.com/#sclient=psy&hl=en&q=htaccess+change+the+url&aq=0p&aqi=p-p1g4&aql=&oq=htaccess+&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=c875dd2b8adea15a