1

我是一名初级 PHP 程序员。我在谷歌上搜索了“动态 PHP 网站教程”。我发现了一些东西。他们使用$_GET变量使网站动态化,因此 URL 如下所示:

  • example.com/?page=home
  • example.com/?page=about
  • example.com/?page=Downloads 等等...

但是我在互联网上找到的大多数动态网站都有这样的链接:

  • 例子.com
  • example.com/about
  • example.com/download 等等....

那么他们是怎么做到的呢??他们有所有类别的文件夹吗?还有一些网站有文章 URL(例如:example.com/articles/posts/2010/article1.php)。如果他们有所有项目的文件夹,那将是一团糟。如果不是那么如何?有人可以举个例子吗?

4

7 回答 7

1

如果您使用的是 apache,请阅读:http ://httpd.apache.org/docs/current/mod/mod_rewrite.html

如果您使用的是 IIS,请阅读:http ://www.iis.net/downloads/microsoft/url-rewrite

于 2012-12-13T04:44:14.633 回答
1

为了使用该$_GET变量,它必须位于查询字符串中(或通过其他非“默认”方式进行路由)。

例如,您使用的 URL 将变为。

example.com/?page=home
example.com/?page=about
example.com/?page=Downloads

此外,您可以使用 .htaccess 文件 ( http://httpd.apache.org/docs/2.0/misc/rewriteguide.html )重写 URL

于 2012-12-13T04:44:29.023 回答
1

您对页面路由感兴趣。

htaccess 和 MVC 路由可能会让你走上正确的道路 :)

于 2012-12-13T04:45:26.680 回答
1

为了呼应其他人,它被称为 url rewite。例如,网址

http://example.com/index.php?ext=blog&cat=news&date=12122012 

可以改写为

http://example.com/blog/news/12-12-2012

这不是自动的,它需要在名为 .htaccess 的文件中定义用于理解新 URL 的模式,该文件通常位于服务器根目录中。注意前面的'.' 在文件名中使其成为隐藏文件。

当我第一次习惯 PHP 时,我发现网站http://phpbuilder.com 很有帮助。他们有很多文章,还有一个对新手来说相当不错的论坛。http://devshed.com也是一个不错的站点,并且有大量关于 PHP 以外主题的信息。

于 2012-12-13T05:09:21.037 回答
0

您可以使用文件夹来实现这种效果,但大多数使用重写(Apache)。此处涉及的主题有点过于宽泛,但如果您只是搜索重写教程,您会很快找到一些。

$_GET 只是从 URL 中获取变量。虽然这可用于使网站动态化,但这是一种通常不受欢迎的技术。

通过重写,您基本上有一个类似 /about 的 URL,但是重写告诉您的服务器类似“像这样操作实际上是 ?page="about"),然后您使用 $_GET 来处理它。

于 2012-12-13T04:44:29.360 回答
0

作为 PHP 初学者,我不会敦促您使用.htaccess,因为在继续之前您需要学习很多东西。您有 2 个选项来发送请求,一个是GETPOST。您可以在互联网上获得更多关于相同的信息。

您还可以选择开始dynamic website使用CMS,我会建议您使用wordpress. CMS 将提供一些in-built function帮助您更快完成工作的内容。也使用他们的control panel you can update the URL format.

我还将敦促您逐步完成并遵循您在互联网上找到的每个教程。

祝一切顺利

于 2012-12-13T05:23:29.600 回答
0

如果你想这样做,你必须使用.htaccess文件并且必须加载mod_rewrite到你的apache服务器中。

在您的根目录中创建名为.htaccess

然后写:

 RewriteEngine On
 RewriteRule ^(.*)\.php$ index.php?page=$1 [L,QSA]

然后调用一个页面

my-page.php

它将作为index.php?page=my-page内部重定向,但在浏览器中它将显示为my-page.php

于 2012-12-13T05:35:08.470 回答