.htaccess 如何将htaccess中的双变量url重写为漂亮url

vptzau2j  于 2023-03-19  发布在  其他
关注(0)|答案(2)|浏览(112)

我只想要这个网址

example.com/?cat_page_10=2

到这个URL

example.com/cat-page/10/2.html

上述URL具有两个(双)变量10和2,它们都是可伸缩/动态变量,它们将根据所请求的页面而改变。
我试过这个

RewriteRule ^cat-page/([^/]*)\.html$ /?cat_page_10=$1 [L]

但结果是这样

http://example.com/cat-page/2.html

我想要这个

example.com/cat-page/10/2.html

因为10也是动态变量的网址,所以我想蚂蚁都将改变根据请求的网址有人帮我在哪里我错了?

toiithl6

toiithl61#

现有的RewriteRule模式不正确,因为它只允许在/cat_page之后有一个/
您可以使用此规则:

RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /\?cat_page_([\w-]+)=([\w-]+)\s [NC]
RewriteRule ^ /cat-page/%1/%2.html? [R=302,L,NE]

# internal rewrite from pretty URL to actual one
RewriteRule ^cat-page/([\w-]+)/([\w-]+)\.html$ ?cat_page_$1=$2 [L,QSA,NC]
mnowg1ta

mnowg1ta2#

查询字符串(?字符之后的所有内容)从未与RewriteRule匹配,您需要RewriteCond来检查查询字符串

我想你可以用这样简单的东西,这取决于这些变量是否总是数字或其他东西。

RewriteCond %{QUERY_STRING} ^cat_page_(\d+)=(\d+)$
RewriteRule ^ /cat-page/%1/%2.html [R,L]

PS:很抱歉我没有及时在#httpd上提供帮助。

相关问题