我想创建一个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请。
提前谢谢!
答案 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将把你网站的一部分作为查询字符串