0

我希望使用 .htaccess 转发一个 url

categoryname?page=23&sort=alpha to category.php?name=catgoryname&page=23&sort=alpha

但我无法使用 charachter 编写 rewriteRule ?,我尝试使用\?但总是出现一些问题它不起作用。

4

1 回答 1

1

查询字符串必须在 中匹配RewriteCond,而不是在RewriteRule. 然后使用将现有查询字符串与新参数[QSA]一起附加到重写的请求上。name=

RewriteEngine On
# If both page=, sort= *must* be present
RewriteCond %{QUERY_STRING} page=(\d+)
RewriteCond %{QUERY_STRING} sort=([a-z]+)
# Rewrite categoryname (or other string) into category.php
RewriteRule ^(.+) category.php?name=$1 [L,QSA]

仅当两者都存在时,上述规则才会匹配。如果他们不需要在场来重写,那么这两个可以省略。page=sort=categorynameRewriteCond

# If the page= and sort= are not *required*, omit them.
RewriteEngine On
# Rewrite categoryname (or other string) into category.php
RewriteRule ^(.+) category.php?name=$1 [L,QSA]
于 2012-11-18T19:49:17.843 回答