3

私のhtaccessリライトはこれらのシナリオを処理する必要があります:

私の現在の.htaccess設定は次のとおりです。

RewriteRule ^dictionary/([\w\+]{2,50})$ /words.php?q=$1 [QSA,L]

特別な文字を認識していません。例:ñ、ó。

何か案は?ありがとう!

4

3 に答える 3

5

最終的解決

RewriteRule ^dictionary/([^/.]+)$ /words.php?q=$1 [QSA,L]
于 2011-12-06T17:54:09.360 に答える
1

式の文字クラスにを追加%します。

RewriteRule ^dictionary/([\w+%]{2,50})$ /words.php?q=$1 [QSA,L]

または、を使用することもできます[^/]{2,50}

特別な(のような[^A-Za-z0-9_])文字は、要求に応じてクライアントによってエンコードされます。åäöこれは9文字になり、1つでもåこの式を通過することに注意してください。50文字の特殊文字を許可する場合は{2,150}、文字列をデコードした後、PHPコードの範囲の両側を使用して確認します(これは自動的に行われると思います)。

于 2011-11-30T08:10:45.637 に答える
0

文字列をデフォルトのURLエンコードメカニズムに変換することをお勧めします。AFAIK url#1へのリクエストは、URLをエンコードせずに行うことはできません。また、デコードはサーバー側で行われるため、心配する必要はありません。フレームワークまたはサーバーサイドスクリプトを使用している場合 は、getではなくpantalónviaを渡すことをお勧めします。POST

jqueryposthttp://api.jquery.com/jQuery.post/を使用でき ます

それでもGETを実行したい場合:

.htaccessルールで特殊文字を処理する方法は?

また、URLがエンコードされることに注意してください。

于 2011-11-30T05:44:04.060 に答える