域名搜索时如何重定向到登陆页面?

问题描述 投票:0回答:1

我最近学会了如何通过删除“.php”或其他一些帖子来清理我的网址,并获取网址中的变量,这很好。但后来我的登陆页面遇到了问题。每当我输入网站的网址时,例如:https://example.com,它应该带我到https://example.com/index,这是本例中的登陆页面。我好像不太能理解。

我尝试更改我的 .htaccess 文件,但没有成功,.htaccess 中留下的代码就是这样:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ router.php?url=$1 [L,QSA]

在我的 router.php 文件中,我有一堆清理 url 的代码。

function split_url(){
    $url = isset($_GET['url']) ? $_GET['url'] : "index";
    $url = explode("/", filter_var(trim($url,"/"),FILTER_SANITIZE_URL));

    return $url;
}
$root= $_SERVER['REQUEST_SCHEME'] . "://" . $_SERVER['SERVER_NAME']. $_SERVER['PHP_SELF'];
$root = trim(str_replace("router.php","",$root), "/");
define("ROOT", $root . "/");
$URL = split_url();
if(file_exists($URL[0].".php")){
    require($URL[0] . ".php");
}
else{
    require("404.php");
}

问题是,当我搜索网站的网址(https://example.com)时,它会加载页面,但它是空的,只有当我搜索(https://example.com/index)时,它才需要我进入包含所有内容的页面。 如果有其他方法,请帮助我。

php .htaccess url redirect
1个回答
0
投票
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ router.php?url=$1 [L,QSA]

看起来您只需将

DirectoryIndex
设置为
router.php
即可。 (
DirectoryIndex
设置请求目录时要提供的文件。)现有的 mod_rewrite 指令不会对根目录(或与此相关的任何目录)的请求执行任何操作。这就是为什么许多前端控制器使用
index.php
,这是 default
DirectoryIndex
文档。

例如,在

.htaccess
文件的顶部:

DirectoryIndex router.php

看起来您的 PHP 脚本应该默认为

index

© www.soinside.com 2019 - 2024. All rights reserved.