0

現在作業しているサイトのURL書き換えを使用しています。私は数字、文字、そして-これを使ってうまく書き直しをしています:

 RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$    characters.php?realm=$1&name=$2 [NC]

ただし、ルールの最初の部分で'を許可する必要があり、ルールの2番目の部分で、ú、æ、ä、çなどの特殊文字、およびここにあるほとんどすべての文字を許可する必要があります。それは手紙に似ています。

特殊なキャラクターが悪いことは知っていますが、キャラクター名に使用できるようにしたのは私ではありません。これらの名前のキャラクターが私のアプリケーションにアクセスできるように、ルールでそれらを許可する必要があります。

ありがとう。

編集:最初の部分が機能するようになりました。現時点で2番目の部分を試してみます。

編集#2:2番目の部分([^ /] +)で両方の解決策を試し、特定の文字を除外すると、404エラーが発生する代わりに、情報が表示されます。ただし、CSSが表示されないため、/cssではなく/css/errorを呼び出そうとしています。chromeによるとcssファイルのリダイレクトループが発生しています。

何かを/errorにリダイレクトする唯一の方法は、文字データが無効な場合です。このアプリケーションは、ブリザード文字APIから文字情報を取得するために使用されているため、アクセント付き文字を書き換えに使用できることが不可欠です。

これが重要かどうかはわかりませんが、uzとAZと一緒にúだけを含めることを許可すると、ページが見つからないことを示す404エラーが発生しますが、úを表示する代わりにúを表示しますその場所。

4

2 に答える 2

0

^([a-zA-Z0-9 _'-] +)/([^ここで除外された文字] +)$

最初の角かっこ内に「'」を追加すると、一致するようになります。2番目の場合は、否定された文字クラスを使用して、許可されていない文字をリストすることをお勧めします。

「-」の前に一重引用符を移動するように編集しました。

于 2012-08-23T14:01:00.290 に答える
0

私が思いつくことができる最も簡単な解決策は、たとえば、úがúとして表示されることです。したがって、単純にúをルールに含めました。それが最善の方法かどうかはわかりませんが、今のところは機能します。

于 2012-08-23T16:04:06.957 に答える