0

これがまったく可能かどうか疑問に思います。

私は htaccess を使用してページを書き換えており、次の行を使用しています。

RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1

きれいなリンクに書き換えます。その後、page.php はデータを適切に呼び出します。変数の長さが3文字の場合、別のページにリダイレクトされる可能性があるかどうか疑問に思っています。

RewriteRule ^([a-zA-Z0-9^-]+{3})$ small.php?char=$1

上記に似たものはありますか?それは可能ですか?説明のために {3} を貼り付けただけです。たとえば、私のアドレスが www.example.com/abc の場合、small.php?char=abc にリダイレクトされ、それ以上の場合は page.php アドレスにリダイレクトされます。

前もって感謝します、

4

2 に答える 2

0

RewriteCondを使用して、一致した場合にユーザーを特定のリンクにリダイレクトする if ステートメントを作成できます。RewriteCond はルール条件を定義します。複数存在する可能性があり、それらすべてが一致する場合は、後続の RewriteRule が使用されます。

RewriteCond %{REQUEST_URI} /^([a-zA-Z0-9^-]+{3})$
RewriteRule ^([a-zA-Z0-9^-]+{3})$ small.php?char=$1 [NC,L]

RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1 [NC,L]
于 2012-08-12T07:04:22.603 に答える
0

+small.php ルールを前に置き、L フラグ (Last) を追加して、小さいバージョンと一致する場合は終了するように、単純にこれを試してみます。

RewriteRule ^([a-zA-Z0-9^-]{3})$ small.php?char=$1  [L]
RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1     [L]

+1 つ以上の文字を表します。{3}正確に 3 文字を表します。

于 2012-08-12T07:48:13.423 に答える