我希望使用.htaccess
转发网址categoryname?page=23&sort=alpha to category.php?name=catgoryname&page=23&sort=alpha
但是我无法使用charachter ?
编写rewriteRule,我尝试使用\?
但总是遇到一些问题它不起作用。
答案 0 :(得分: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=
都存在,则上述规则仅匹配。如果他们不需要出现以重写categoryname
,那么可以省略两个RewriteCond
。
# 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]