私は次のようなURLを持っています:http://localhost/project
そしてユーザーがそこに行くとき、私はにリダイレクトしたいと思いhttp://localhost/project/en
ます。どうすればこれを達成できますか?
質問する
318 次
2 に答える
3
これは、プログラムで実行することも、Webサーバーレベルで何かを使用して実行することもできます(Apacheでのmod_rewriteなど)。PHPについて明示的に言及されているので、以下を提供します。
ドキュメントルートの「project」というフォルダに、次のようにindex.phpを作成します。
<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://localhost/project/en" );
exit(0);
?>
これを処理するためのこのスタイルと他のメソッド(mod_rewriteを含む)を示すリンクは次のとおりです。
于 2013-03-25T14:38:13.643 に答える
1
多くの方法があります。仮想ホストを使用し、URIを書き直してURLを適切に準備する必要がありますが、それらを気にせず、提示した問題に対して正確に「正しく機能する」方法が必要な場合は、次のことを試してください。
$explode = explode('/',$_SERVER['REQUEST_URI']);
if (count($explode) == 1)){
header('Location: http://localhost/project/en');
}
コメント後に編集
これを試してみてください。ただし、製品がないため、テストしていないことに注意してください。ここの環境ですが、動作するはずです。そうでない場合は、コメントしてください:)
$explode = explode('/',$_SERVER['REQUEST_URI']);
$endsWithSlash = FALSE;
end($explode);
if (empty($explode[key($explode)])){
unset($explode[key($explode)]);
$endsWithSlash = TRUE;
}
if (end($explode) != 'en'){
$url = 'http://localhost';
$url .= $_SERVER['REQUEST_URI'];
if (!$endsWithSlash){ $url .= '/'; }
$url .= 'en';
header('Location: '.$url);
}
于 2013-03-25T14:37:10.157 に答える