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

时间:2012-01-02 18:57:12

标签: 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

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

web.url.com/about

比这个:

web.url.com?p=about 

问:Wordpress ??

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

问:JQuery?

答:PHP请。

提前谢谢!

4 个答案:

答案 0 :(得分:5)

单独使用PHP ,我认为不可能。但是,您的网络服务器可能正在运行Apache,通过将您的漂亮网址转换为您的PHP脚本可以处理的丑陋URL(带有查询字符串),可以使此任务相当直截了当。你的访客不知道这是怎么回事;它们没有被重定向或任何东西。

我强烈建议您查看this tutorial及其followup。第二个教程包含此任务所需的信息(从this section开始),但我强烈建议您阅读第一个教程,以深入了解您正在做的事情。

基本上,这些教程将教你如何在名为.htaccess的文件中指定(丑陋的,可怕的)URL重写规则。这些规则会将您漂亮的URL转换(或者#34;重写")为PHP脚本可以处理的不那么漂亮的URL。

例如,yoursite.com/about实际上会访问yoursite.com/index.php?page=about,或者沿着这些线路访问。

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

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

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

答案 1 :(得分:1)

使用基于RewriteRule的{​​{1}}。然后,您可以将所有不存在的文件(在Apache内部)重定向到通用.htaccess,并将请求的路径作为查询字符串index.php。重定向在内部处理,因此?p=about是该页面的外部URL。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

使用PHP URL rewrite。 PHP将把你网站的一部分作为查询字符串

相关问题