基于 php 的网站显示基于 URL 的页面内容?

标签 php url navigation

我想做一个php网站,只需要一个php文件就可以显示内容。这有点难以解释,所以让我尽力而为。

一些网站使用基于目录的系统,例如:

web.URL.com/index.htm
web.URL.com/about.htm
web.URL.com/blog.htm

等等。 这涉及为每个页面创建一个文本文件。

所以,这里的目标是创建一个像框架一样的页面,并根据 Url 显示内容,所以它会像上面的方法一样,但只是一个页面。我很确定你可以做到这一点,但不知道用正确的方式来表达它,或者在将它输入到谷歌时使用什么词汇。

您可能有的一些问题:

问:为什么不使用这样的参数:

web.url.com?pgid=some+page

答:我希望访问者输入 url 时 url 尽可能干净。例如,这更容易记住:

web.url.com/about

比这个:

web.url.com?p=about 

问:Wordpress??

A:我们想要自己的东西。 Wordpress 很棒,但不适合我们的项目。

问:JQuery?

答:请使用 PHP。

提前致谢!

最佳答案

单独使用 PHP,我认为这是不可能的。但是,您的网络服务器很可能正在运行 Apache,通过将漂亮的 URL 转换为 PHP 脚本可以处理的丑陋的 URL(带有查询字符串),这使得此任务相当简单。您的访问者不知道正在发生这种情况;他们没有被重定向或任何东西。

我强烈建议你看看this tutorial , 及其 followup .第二个教程包含您完成此任务所需的信息(从 this section 开始),但我强烈建议您阅读第一个教程以更深入地了解您在做什么。

基本上,这些教程将教您如何在名为 .htaccess 的文件中指定(丑陋、可怕的)URL 重写规则。这些规则会将您漂亮的 URL 转换(或“重写”)为您的 PHP 脚本可以处理的不太漂亮的 URL。

例如,yoursite.com/about 实际上会访问 yoursite.com/index.php?page=about,或类似的内容。

对于一些示例代码,这是从 this tutorial 复制粘贴的 95% 片段:

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

正如该链接所解释的那样,它会将所有请求转发到 index.php,除非请求的是实际文件或目录。

关于基于 php 的网站显示基于 URL 的页面内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704311/

相关文章:

javascript - 数据未发布在全日历中?

php - 使用 .htaccess 强制将 xxx.php URL 转发到 xxx

javascript - 当用户点击浏览器后退按钮时触发事件

ionic2 - 导航栈至少需要一个根页面

javascript - PHP:strtotime 不适用于 file_get_contents

php - 需要正则表达式来匹配特殊情况

php - href链接中的 "/./"是什么意思?

java - 索引 65 处的路径中存在非法字符异常 [ java ]

javascript - react native 导航实验和 MapView 手势

php - 将字符串与 mysql 中的值进行比较