トロのドキュメントは次のように示しています。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ /index.php/$1 [L]
しかし、私は何度もさまざまな方法を試しましたが、うまくいきません...何度も検索した後、これを見つけました( source ):
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ /index.php?$1 [L]
これを取得するにはRewriteRule ^(.*)$ /index.php/$1 [L]
、/
toを変更するだけです?
RewriteRule ^(.*)$ /index.php?$1 [L]
オリジナルが機能しない理由を知っている人、またはこれに対して別のアプローチを持っている人はいますか?
詳細情報 ホスト: php5.4 fastcgi、共有ホスト、Dreamhost 社。PATH_INFO の代わりに SCRIPT_NAME を受け入れるだけです
それを処理する Toro コードは次のとおりです。
$path_info = '/';
if (!empty($_SERVER['PATH_INFO'])) {
$path_info = $_SERVER['PATH_INFO'];
}
else if (!empty($_SERVER['ORIG_PATH_INFO']) && $_SERVER['ORIG_PATH_INFO'] !== '/index.php') {
$path_info = $_SERVER['ORIG_PATH_INFO'];
}
else {
if (!empty($_SERVER['REQUEST_URI'])) {
$path_info = (strpos($_SERVER['REQUEST_URI'], '?') > 0) ? strstr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI'];
}
}