首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Htaccess和PHP方向或路由

问Htaccess和PHP方向或路由
EN

Stack Overflow用户
提问于 2021-09-15 22:38:47
回答 1查看 46关注 0票数 2

我想实现的网址:https://example.com/VdnbzeHfua/ep1_mp4

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

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

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

代码语言:javascript
复制
<?php

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

如何使用php和.htaccess实现这一目标

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 22:48:26

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

代码语言:javascript
复制
FallbackResource /index.php

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

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

代码语言:javascript
复制
RewriteEngine On

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

尽管仅此一点并不比上面的FallbackResource指令做更多的事情。

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

代码语言:javascript
复制
DirectoryIndex /index.php

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

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

代码语言:javascript
复制
if ($url == '/about') {
    include('content/about.php');
}

但可以做得像你喜欢那样复杂。显然,if结构不会扩展到1000 s的页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69200487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档