我在同一个文件中有一些PHP和HTML,我不确定如何将URL显示为该页面的名称。
以下是我想要做的一个例子:让我们说一些页面id = 1,该页面的标题是HelloWorld。
而不是site.com/page.php?id=1
我希望网址显示为site.com/HelloWorld
但我遇到的问题是我在通过id查询标题后才知道该页面内页面的标题。
考虑到我描述的设置,有没有办法让网址显示为网页的名称?而且,如果有人通过使用带有页面名称而不是id的更好看的网址链接到该页面,是否仍然有办法获取id以及其他页面内容?
谢谢!
答案 0 :(得分:1)
您需要了解更多有关.htaccess如何工作的信息。
这是一个让我开始的好链接:
更新:
这是许多框架中非常常见的做法,其中所有请求都发送到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”文件的规则。