2

私は次のようなURLを持っています:http://localhost/projectそしてユーザーがそこに行くとき、私はにリダイレクトしたいと思いhttp://localhost/project/enます。どうすればこれを達成できますか?

4

2 に答える 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を含む)を示すリンクは次のとおりです。

http://www.phatz.com/301redirect.php

于 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 に答える