0

変数としてページに 5 文字を渡す .htaccess を書きたいのですが、これらの 5 文字は (小文字のアルファベットと数字のみ)

たとえば、誰かが www.abc.com/etd01 にアクセスした場合、etd01 を www.abc.com/link.php?link=etd01 に渡したい

だから私は書いた

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ LinkCode.php?LinkCode=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ LinkCode.php?LinkCode=$1

それは機能していますが、一部が www.abc.com/dswdrd を開くと、変数も渡されます。私が望むのは、長さが 5 の場合、合格し、それ以外の場合は何もしないことです

出来ますか??

いいえ、.htaccess ファイルを

RewriteEngine On
RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1

しかし、今私が置くとき

RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1

joomla .htaccessファイルの最後では機能しません

joomla .htaccessファイルは以下です

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1

<Files ~ "\.vcf$">
ForceType text/x-vcard
</Files>
4

1 に答える 1

2

1) あなたは を持っています。これは1 つ以上+の を意味します。正確に5 が必要な場合は、 に置き換えます。{5}

2)「(小文字のアルファベットと数字のみ)」が必要だと言いましたが、テンプレートは大文字だけでなく、マイナス-とアンダースコアにも一致します_。あなたの要件に合わせてパターンからそれらを削除しました。

3) また、2 つのルールを 1 つに結合しました (末尾のスラッシュの有無にかかわらず URL を処理します)。

RewriteEngine On
RewriteRule ^([a-z0-9]{5})/?$ LinkCode.php?LinkCode=$1
于 2012-05-28T11:12:12.330 に答える