ベースuriを自動的に検出して削除して、テスト/テストパートを残すことができます。
if(!empty($_SERVER['PATH_INFO']))
{
// Uri info does not contain docroot or index
$uri = $_SERVER['PATH_INFO'];
}
else
{
if(!empty($_SERVER['REQUEST_URI']) && !empty($_SERVER['HTTP_HOST']))
{
$fullUrl = 'http://'
. ((isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : '')
. ((isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : '');
$uri = parse_url($fullUrl, PHP_URL_PATH);
}
else if(!empty($_SERVER['PHP_SELF']))
{
$uri = $_SERVER['PHP_SELF'];
}
}
$baseUri = substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1);
$uri = str_replace($baseUri, '', $uri);
編集:上記MAUさんのコメントが正しいです。私はmod rewriteを既に使用していたという仮定の下にいました。
私は$ _SERVER変数も見ていますが、もし私が欲しいものを私に与えることができれば、運がなくても見つかります。 PATH_INFOには潜在的な可能性がありましたが、Imが本当に探しているものではありません。 – John
'mod_rewrite'を使って全てを' index.php/your/path'に書き換えます。あなたの '.htaccess'は、https://gist.github.com/1320584のようになります。次に、Daveoのソリューションを安全に使用できます。 – mAu
フォルダがある場合はリダイレクトされますか? css/ – John