【问题标题】:php based website that displays page content based on URL?基于 URL 显示页面内容的基于 php 的网站?
【发布时间】:2012-01-02 18:57:12
【问题描述】:

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

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

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

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

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

您可能有一些问题:

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

web.url.com?pgid=some+page

答:当访问者输入网址时,我希望网址尽可能简洁。例如,这更容易记住:

web.url.com/about

比这个:

web.url.com?p=about 

问:Wordpress??

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

问:jQuery?

答:PHP 请。

提前谢谢你!

【问题讨论】:

标签: php url navigation


【解决方案1】:

单独使用 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复制和粘贴的sn-p 95%:

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

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

【讨论】:

    【解决方案2】:

    使用基于.htaccessRewriteRule。然后,您可以将所有不存在的文件(在 Apache 内部)重定向到一般的index.php,并将请求的路径作为查询字符串?p=about。重定向是在内部处理的,因此http://example.com/about 是该页面的外部 URL。

    【讨论】:

      【解决方案3】:

      您可以使用 switch 语句检查 $_GET 值并根据提供的参数输出页面。此外,您必须添加一些 mod_rewrite 规则来路由这些请求。

      【讨论】:

        【解决方案4】:

        使用PHP URL rewrite。 PHP 会将您的 URL 的一部分作为查询字符串输入

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多