我想做一个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/