.htaccess清理url有两个变量

时间:2016-03-04 15:56:55

标签: .htaccess url-rewriting

好吧,我已经尝试了很多代码,但仍然无法弄清楚是什么让它正常工作。

我得到了这段代码:

#--Redirect from "/?page=foo" to "/page/foo"--#
RewriteCond %{THE_REQUEST} /\?page=([^\s]+) [NC]
RewriteRule ^ /page/%1? [NC,L,R]
#--Rewrite "/page/foo/" to "/?page=foo"--#
RewriteRule ^page/([^/]+)/?$ /?page=$1 [NC,L,QSA]

#--Redirect from "/search.php?search=foo" to "/search/foo"--#
RewriteCond %{THE_REQUEST} /search\.php\?search=([^\s]+) [NC]
RewriteRule ^ /search/%1? [NC,L,R]
#--Rewrite "/search/foo/" to "/search.php?search=foo"--#
RewriteRule ^search/([^/]+)/?$ /search.php?search=$1 [NC,L,QSA]

#--Redirect from "/post.php?id_post=foo" to "/post/foo"--#
RewriteCond %{THE_REQUEST} /post\.php\?id_post=([^\s]+) [NC]
RewriteRule ^ /post/%1? [NC,L,R]
#--Rewrite "/post/foo/" to "/post.php?id_post=foo"--#
RewriteRule ^post/([^/]+)/?$ /post.php?id_post=$1 [NC,L,QSA]

# Support new SEO-friendly URLs
RewriteRule page/(.*) ?page=$1
RewriteRule search/(.*) search.php?search=$1
RewriteRule post/(.*) post.php?id_post=$1

并且他们的工作非常好但是现在我想让他们加入其中两个像:

RewriteRule search/(.*)/page/(.*) search.php?search=$1&page=$2

链接工作得很好,但网址不会像其他人一样自动更改我想知道是否可能,如果是,请帮助:)

先谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用以下规则:

RewriteEngine on

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