0

私の .htaccess は、私が望むようにきれいな URL を書き換えていません。指示されたことを実行する代わりに、404 エラーが表示されます。

これ欲しい:

http://localhost/somepossiblepath

これにルーティングされます:

http://localhost/index.php?route=somepossiblepath

現在、これは私のhtaccessファイルです:

RewriteEngine On

RewriteCond ${REQUEST_FILENAME} !-d
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-l

RewriteRule ^/(.+)$ /index.php?route=$1 [QSA,L]

現在、スクリプトが機能するかどうかをテストしています。

<?php echo $_REQUEST['route'] ?>

入力すると機能し/indexますが、それ以外を入力すると機能しません。

何か助けはありますか?

4

1 に答える 1

0

.htaccess ファイルでは、ルール regexps によって照合される文字列は、ベース ディレクトリが取り除かれています ( /a の場合DOCROOT/.htaccess)。だから似合わ^/(.*)$ない。たとえば、必要なものは次のとおりです。

RewriteEngine On

RewriteRule ^index\.php - [L]

RewriteCond ${REQUEST_FILENAME} !-d
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ /index.php?route=$1 [QSA,L]
于 2012-08-16T15:31:42.440 に答える