0

mod_rewrite を使用して REQUEST_URI の長さを制限しようとしましたが、問題が発生しました。コード:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^(/[a-zA-Z0-9]{6}/?$)
RewriteRule ^ index.php [L]

それは正常に動作し、すべての REQUEST_URI == lentgh(6) が index.php を指していますが、REQUEST_URI の禁止または ex の error.html へのリダイレクトに一致しない必要があります。

前もって感謝します。私はApache> 2.4.4を使用しています

UPD 私はこの例のように意味しました: If REQUEST_URI == len(6)index.php If REQUEST_URI != len(6)を指して別のリソースにリダイレクトします

4

3 に答える 3

1
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([a-zA-Z0-9]{6})$
RewriteRule .* index.php [L]

RewriteCond  %{REQUEST_URI}  !^/index.php
RewriteRule .*  404.php
于 2013-08-17T03:10:57.557 に答える
0

これを行う 1 つの方法は、否定先読みを使用する別のルールを作成することです。

RewriteEngine On
RewriteCond %{REQUEST_URI} ^(?!/[a-zA-Z0-9]{6}/?$)
RewriteRule ^ http://google.com [L,R=301]

RewriteCond %{REQUEST_URI} ^(/[a-zA-Z0-9]{6}/?$)
RewriteRule ^ index.php [L]
于 2013-08-17T03:12:30.627 に答える