ディレクトリabcがあり、その中に2つのファイルがあります。1 つは login.php で、もう 1 つは index.php です。パス localhost/abc を index.php にリダイレクトしていますが、login.php にリダイレクトしたいと考えています。
3 に答える
デフォルトでは、ページは常にindex.php
ディレクトリ内のファイルを開きます。これがデフォルトの動作です。サーバー設定を変更することで変更できますが、使用しているサーバーによって異なります。ApacheIISなど。
使用しているApacheを想定しています... httpd.config
apacheフォルダ内のファイルの次の行を変更する必要があります
<IfModule dir_module>
DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>
この行はindex.phpを検索し、見つからない場合は、その後にリストされている連続するファイルを検索します。必要に応じてファイルの順序を変更できます。
質問のJavaScriptにタグを付けたので、以下のコードを使用してサーバー設定を変更せずに目的のページにリダイレクトできます
<script type="text/javascript" language="javascript">
window.location = 'login.php';
</script>
しかし、ユーザーがログインしていない場合は、以下のように実行できるログインページにリダイレクトするようなことをしたいと思います。
セッションを使用していると仮定してPHP
、
//write this in index.php
if(isset($_SESSION["isLoggedin"]) && $_SESSION["isLoggedin"]==true){ //if user has logged in and session variable has been set.
header("Location:login.php"); //this will redirect the page to login.php
}
お役に立てれば...
localhost / abcにアクセスすると、index.phpにリダイレクトされます
//index.php
//javascript method
if( !checkLogin() ){
window.location.href = 'login.php'
}
//php way
if( !checkLogin() ){
header('location: login.php');
}
ログインしていない場合、checkLoginはfalseを返します。
PHP を使用できるのに、なぜ JavaScript でリダイレクトするのですか?
- JavaScript が無効になっている場合、リダイレクトは機能しません。
- 場合によっては、URL をエンコードする必要があります
- HTTP は JavaScript よりもはるかに適している
- 検索エンジンはそれらをフォローします
- 永続的かどうかを述べることができます
PHPで302リダイレクト
<? header('Location: /login.php'); ?>
ヘッダー関数は生のヘッダー データをクライアントの Web ブラウザーに送信し、この場合、指定された場所にリダイレクトするようにブラウザーに指示する302 ステータス コードを送信します。しかし、それは賢明なSEOではありません。