如何在PHP脚本中更改URL的外观

时间:2011-12-05 22:44:21

标签: php apache .htaccess

我在同一个文件中有一些PHP和HTML,我不确定如何将URL显示为该页面的名称。

以下是我想要做的一个例子:让我们说一些页面id = 1,该页面的标题是HelloWorld。

而不是site.com/page.php?id=1我希望网址显示为site.com/HelloWorld

但我遇到的问题是我在通过id查询标题后才知道该页面内页面的标题。

考虑到我描述的设置,有没有办法让网址显示为网页的名称?而且,如果有人通过使用带有页面名称而不是id的更好看的网址链接到该页面,是否仍然有办法获取id以及其他页面内容?

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要了解更多有关.htaccess如何工作的信息。

这是一个让我开始的好链接:

.htaccess tricks and tips

更新:

这是许多框架中非常常见的做法,其中所有请求都发送到index.php,并从那里使用php来提供正确的页面:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.site.com/index.php [L,R=301]
</IfModule>

答案 1 :(得分:1)

这实际上是您的HTTP服务器软件(通常是Apache)的功能,而不是PHP的功能。

您在具有“友好”网址的网站上看到的是友好名称在正则表达式中捕获,然后传递给PHP。

例如:

GET /HelloWorld

发送到您的Web服务器.. Web服务器解析它

RewriteCond ^(A REGULAR EXPRESSION TO CAPTURE YOUR FRIENDLY NAME)$
RewriteRule page.php?id=(EXPRESSION FROM ABOVE)

通过这种方式,您的PHP脚本将始终接收友好名称作为参数。

查看Apache的“mod_write” - 您通常可以创建在根目录中使用“.htaccess”文件的规则。