我正在尝试添加最后一项改进(关于htaccess),这就是我希望它将/?mod=inicio
重定向到/inicio
。所以我尝试使用以下代码来执行此操作,但它会继续构建这样的网址/inicio?mod=inicio
RewriteCond %{QUERY_STRING} ^mod=([a-z]+)$ [NC]
RewriteRule .* /%1 [L]
额外参数相同:从/?mod=x&type=y-z
到/x/y-z
答案 0 :(得分:1)
请尝试以下规则:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?mod=([a-z]+)&type=([a-z\-]+)
RewriteRule ^ /%1/%2? [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?mod=([a-z]+)($|\ )
RewriteRule ^ /%1? [L]
关键是匹配实际请求而不是URI,因为您的其他规则(来自您之前的问题)将导致这些重写匹配,它们将相互冲突。另一个关键点是在目标末尾包含?
(例如/%1/%2?
),这使得查询字符串不会被附加。