我如何在我的htacces文件

时间:2015-07-27 09:36:03

标签: .htaccess

我只想问一下我可以使用“?”在我的htaccess url重写?'

它喜欢这个主题标题:

RewriteRule ^example.html?site=(.*)$ /example.php?allowfrom=$1 [L]

RewriteRule ^example.html?id=([0-9]+)&view=([a-z]*)$ /example.php?id=$1&plus=$2 [L]
我可以吗?特别感谢。

1 个答案:

答案 0 :(得分:3)

不,您无法在?指令中使用RewriteRule来匹配查询字符串RewriteRule与仅限的网址匹配,后者不包含查询字符串。 (旁白:只有当?是URL路径的一部分,即在请求的URL中进行%。编码时,才能与RewriteRule匹配 - 但这是非常不寻常的,并且非常气馁,因为它会引起混淆,只是在一些系统上破坏。)

为了匹配查询字符串,您需要使用RewriteCond指令。例如:

RewriteCond %{QUERY_STRING} ^site=(.*)$
RewriteRule ^example\.html$ /example.php?allowfrom=%1 [L]

请注意,%1(与$1相对)与(最后匹配的)RewriteCond指令中的带括号的子模式匹配。