htaccess SEF URL重写不能使用问号

时间:2016-02-16 02:44:00

标签: apache .htaccess mod-rewrite url-rewriting

请注意我的网址重写面临一些挑战。

我试图改写:

domian.com?v=subj to domian.com/subj

和     domian.com?v=subj&id=3到domian.com/subj/id

因此用户可以直接访问干净的URL。

这是我尝试过的不起作用的事情:

RewriteCond %{QUERY_STRING} ^v=(.*)$
RewriteRule ^index.php/?$ $1? [NC]

我也尝试了这个:

RewriteRule ^(.*)/([0-9])$ http://domain.com/$1/$2 [NC]

两者都不起作用。我需要对此作一些澄清。感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用以下2条规则将查询字符串重定向为SEF格式。

RewriteEngine on

#--Redirect "?v=foo&id=bar" to "/foo/bar"
RewriteCond %{THE_REQUEST} /index\.php\?v=([^&]+)&id=([^&\s]+) [NC]
RewriteRule ^ /%1/%2? [NC,L,R]
#--Rewrite "/foo/bar" to "?v=foo&id=bar"
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?v=$1&id=$2 [NC,QSA,L]