2

URL書き換えについて質問です。
今、このような URL を呼び出すと:

http://domein.ext/error/mysql/2/class.core.php/

これを GET 変数に出力します。

$_GET['type'] = mysql/2/class.core.php/.php/mysql
$_GET['error'] = 2
$_GET['file'] = class.core.php

しかし、TYPEが正しくありませんか?これは私の .htaccess です:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ $1.php

RewriteRule ^index/password/ index.php?error=password
RewriteRule ^error/(.*)/(.*)/(.*)/ error.php?type=$1&error=$2&file=$3

この問題を解決するにはどうすればよいですか? そして、他のすべては正常に動作します..

4

2 に答える 2

0

一致を非貪欲にしてみてください:

RewriteRule ^error/(.*?)/(.*?)/(.*)/ error.php?type=$1&error=$2&file=$3
于 2012-08-31T15:15:39.167 に答える
0

Lすべてのルールをフラグで終わらせてください。コードを次のように変更します。

RewriteEngine on

RewriteRule ^index/password/?$ index.php?error=password [L,QSA,NC]

RewriteRule ^error/([^/]+)/([^/]+)/([^/]+)/?$ error.php?type=$1&error=$2&file=$3 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
于 2012-08-31T15:17:15.897 に答える