3

ここに.htaccessファイルがあります:

Options +FollowSymLinks

RewriteEngine on

RewriteBase /

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

RewriteRule .* index.php [QSA,L]

書き換えは機能しますが、 http://site.com/exampleを試しているときに index.php に path_info がありません。

このトピックを赤くしましたhttps://stackoverflow.com/questions/1442854/codeigniter-problem-with-mod-rewrite-on-apache-1-3が、問題は解決しませんでした。

したがって、この問題は apache 1.3 でのみ発生し (2.0 ではすべて問題ありません)、その理由を知りたいです。残念ながら、httpd.conf にもアクセスできません (

私を助けてください。

4

3 に答える 3

3

書き換えルールを次のように変更してみてください。

RewriteRule (.*) index.php [QSA,L,E=PATH_INFO:/$1]
于 2011-12-13T23:15:31.470 に答える
1

これは、 as (拡張子なし)としてmod_negotiationアクセスできることに関連しています。/index.php/index

解決:

a2dismod negotiation

service apache2 restart
于 2012-02-02T12:05:32.543 に答える
0

これPATH_INFOは、実際のCGI実行可能ファイル/PHPスクリプトファイル名の後の仮想パスサフィックスです。
あなたはそれを見るために1つを渡す必要があります:

RewriteRule (.*) index.php/$1 [QSA,L]

最初にオプションを有効にする必要がある場合もあることに注意してください:http://httpd.apache.org/docs/2.2/mod/core.html#acceptpathinfo

AcceptPathInfo On

また、PHP SAPIによっては、--cgi-force-redirect設定(一部のセットアップでPATH_INFOエクスプロイトを回避するように設計されている)に関してphp.iniを構成する必要がある場合があります。http://php.net/manual/en/security.cgi-bin.php

于 2011-12-13T23:34:52.127 に答える