0

私は CI にまったく慣れていないので、迷惑な "index.php" を URL から削除しようとしています。これは私が使用している .htaccess です:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

ご覧のとおりQUERY_STRING、新しい URL を機能させるには を使用する必要があります (index.php の後の疑問符に注意してください)。使用しようとするとPATH_INFO(つまり、疑問符なしで)、No input file specifiedエラーが発生するだけです。

これは問題ありません。必要に応じて使用しても問題ありませんが、書き直しを始める前QUERY_STRINGは問題なく使用していたため、問題がわかりません。つまり、デフォルトの「example.com/index.php」 PATH_INFO/controller/function" が機能していて、それは PATH_INFO AFAIK を使用しています。

私の例で htaccess が PATH_INFO を破る理由を誰か知っていますか? 愚かな質問で申し訳ありません。

4

1 に答える 1

2

これを試して:

RewriteEngine   on
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule     .* index.php/%{REQUEST_URI}   [L]

上記の書き換えルールは、現在作業中のアプリでは正常に機能しているようです...適切なPATH_INFO値とともに正しいGETリクエストを渡します。

于 2012-05-01T04:54:50.527 に答える