htaccess 和 PHP 方向或路由

Htaccess and PHP Direction or routing

我要实现的URL:https://example.com/VdnbzeHfua/ep1_mp4

注意:我的页面 (index.php) 位于根文件夹

当我访问这个 URL https://example.com/VdnbzeHfua/ep1_mp4 时,它不应该期待子文件夹

我将使用 PHP(index.php 在根文件夹中)获取并使用 URL 中的值,如下所示

<?php

$url      = $_SERVER['REQUEST_URI'];
................
........... 
?>

如何使用 php 和 .htaccess 实现此目的?

请任何人帮助我解决这个问题。

您需要一个标准的前端控制器模式,这可以通过 .htaccess 中的单个指令实现:

FallbackResource /index.php

任何否则会触发 404 的请求都会被传递给 /index.php

另一种方法(可能更常见)是使用 mod_rewrite。例如:

RewriteEngine On

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

尽管仅此一项并没有比上面的 FallbackResource 指令做更多的事情。

这两种方法都需要正确设置 DirectoryIndex,如果尚未正确设置(这通常会在服务器配置中设置为 index.php)。例如,在 .htaccess 的顶部,在现有指令之前:

DirectoryIndex /index.php

您似乎已经解决了 PHP 部分。 IE。检查 $_SERVER['REQUEST_URI'] 的值以检查请求的 URL,顺便说一句,它也将包含查询字符串。

然后您可以根据需要包含必要的 PHP 文件。例如,这可能很简单,例如:

if ($url == '/about') {
    include('content/about.php');
}

但可以根据您的喜好进行复杂化。显然,if 构造不会扩展到 1000 页。