- Godaddyの担当者を今すぐLANケーブルで首吊らせたいです。マジで。
PATH_INFOやらAcceptPathInfoが徹底的に無効化されているGoDaddyでPATH_INFOを使う方法です。
- .htaccess に以下の追記をする。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,E=PATH_INFO:$1] </IfModule>
- いわずとしれた、存在しないファイルを index.php にリダイレクトするRewriteRuleです。
- ミソはフラグで、
- QSA - クエリ部分を末尾に追記する
- E=PATH_INFO:$1 - $1 に該当する部分を環境変数 REDIRECT_PATH_INFO に代入する。
あとはスクリプト側で以下をやるだけです。
if (isset($_SERVER['REDIRECT_PATH_INFO'])) {
$_SERVER['PATH_INFO'] = $_SERVER['REDIRECT_PATH_INFO'];
}
Concrete5 CMSをGodaddyで使いたいときには以下もやってしまいましょう。
define('URL_REWRITING_ALL', TRUE); ob_start('ob_index_handler'); function ob_index_handler($source) { $source = str_replace('index.php/', '', $source); return $source; }
これを見つけるのに時間がかかりすぎたので現在 絶賛徹夜で残業中。