正確に 4 文字のすべての URL を書き換えようとしていますが、他の URL を +.php という名前に書き換えることができます
domain.com/a4Lv/ to domain.com/file.php?id=a4Lv
domain.com/longerThan4Chars/ to domain.com/longerThan4Chars.php
長さによる書き換えは可能ですか?
正確に 4 文字のすべての URL を書き換えようとしていますが、他の URL を +.php という名前に書き換えることができます
domain.com/a4Lv/ to domain.com/file.php?id=a4Lv
domain.com/longerThan4Chars/ to domain.com/longerThan4Chars.php
長さによる書き換えは可能ですか?
これはうまくいくはずです。許可する文字を指定することを好みますが (最初のオプション)、何かを許可する場合は、2 番目のオプションを使用します
RewriteRule ^([a-zA-Z0-9]{4})(/?)$ /file.php?id=$1 [QSA,L]
RewriteRule ^(.{4})(/?)$ /file.php?id=$1 [QSA,L]
壊す:
[a-zA-Z0-9] limits it to letters and numbers
{4} the length of the id
(/?) optional trailing slash
はい、一致する文字数を処理する正規表現を作成できます。
# for exactly 4 characters:
RewriteRule ^(.{4})/?$ /file.php?id=$1 [L]
# for more than 4 (need to exclude things ending with php)
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^(.{4}[^/]+)/?$ /$1.php [L]