スラッシュ(%2F)をその一部として含むURLクエリ文字列を書き換えルール(iisおよびapache)で処理する方法があるかどうか疑問に思いました。
例として:
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にリダイレクトする必要がある場合でも
前もって感謝します