1

私はindex.phpたった1行で持っています

<?php echo $_GET['a']; ?>

入力するとurl

http://localhost/test/?a=abc.....

私は得る

abc.....

しかし、私が作成.htaccessして書くと:

RewriteEngine on
RewriteRule ^([a-z]+)$ ?a=$1

そして、私が入力した場合url

http://localhost/test/abc.....

私はabc(ドットなしで.....)得るだけです

なぜこうなった?

文字列が送信された404 error場合に取得したい。abc.....どうすればこれをアーカイブできますか?

4

1 に答える 1

0

試す

RewriteRule ^([a-z]+)$ ?a=$1 [L]
RewriteRule .* 404.php

最初のルールが一致した場合、値が に入れられますa。それ以外の場合、ユーザーは に送信されます。404.php

別の編集

すみません、最初にあなたの質問を誤解しました。

あなたの正規表現はラテン文字 (英語) のみをキャッチします^([a-z]+)$^([a-z\.]+)$^(.*)$

オリジナル- まだ役立つかもしれないので、ここに残しておきます。

使用する

RewriteRule ^([a-z]+)$ ?a=$1 [QSA]

これにより、書き換えルールの後にクエリ文字列が渡されます。

このテーマの詳細については、この記事を試してください。

于 2012-11-08T11:14:01.267 に答える