我想知道是否有一种方法可以处理包含斜杠( %2F )的重写规则( iis 和 apache )url查询字符串作为它的一部分。
举个例子:
www.domain.com/project/word1
被重写为
www.domain.com/project/index.php?word=word1
通过此规则(在 iis 中):
<rule name="Friendly">
<match url="^(.+)$" ignoreCase="true" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?word={R:1}" appendQueryString="false" />
</rule>
或在阿帕奇:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?word=$1
这工作正常。
但是也有这样的情况:
www.domain.com/project/word1%2Fword2
应该重定向到
www.domain.com/project/index.php?word=word1/word2
但显然由于斜杠( %2F ),我得到了一个错误 404。有没有办法解决这个问题?即使这意味着我必须切断 /word2 部分并将 www.domain.com/project/word1%2Fword2 重定向到 www.domain.com/project/index.php?word=word1
先感谢您