0

ここに私の .htaccess ルールがあります:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/(.*)$ index.php?var1=$1&item=$2&var2=%{REQUEST_URI} [NC,L]
RewriteRule ^(.*)$ index.php?var1=$1 [NC]

ここに URL があります (末尾にドットが付いています): http://localhost/test/secondvar.

問題は、末尾のドットがvar2 GET変数内に入っていないことです

私は a を使用しprint_r($_GET)ました。これが上記の URL の結果です。

配列 ( [var1] => テスト [var2] => secondvar [uri] => /test/secondvar.)

私の質問は、URL から var へのパラメーターとして末尾のドットを取得するにはどうすればよいですか? ご覧のとおりREQUEST_URI、Apache がドットを認識していることを示しています。

パスをパラメーターとして送信できずGET、PHP から URI のパスを読み取るように注意することはできませんが、ドットが表示されない理由とそれを修正する方法を知りたいです。ダイレクト PHP ソリューション。

編集: 末尾のドットだけでなく、末尾の ? も... =[

4

1 に答える 1

0

php が末尾のドットを除外しているだけかもしれません。POST/GET のドットをアンダースコアに変換することがよくあります。私はただするだろう

explode('/',$_SERVER['REQUEST_URI'])
于 2010-01-11T02:57:05.037 に答える