我有一个新闻(博客)网站,当选择了各个帖子时,它会以下列格式返回网址:
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?
答案 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