如何为网站上的每个页面创建类似URL的目录

时间:2010-10-07 17:39:35

标签: php apache web

我有一个跨多个页面分布的内容网站,但只有一个index.php文件,该文件根据页面编号从数据库中检索数据。

目前,网址方向必须类似于domainname.com/Page/content.php?page=3

我注意到,很多网站都有类似网址的结构,例如:

domainname.com/Page/3

我知道如何将其更改为domainname.com/Page/?page=3,但我希望删除?page部分。

如何在不单独为每个页面创建目录的情况下执行此操作,内容会不断增长,因此每个页面都会发生更改。

由于

2 个答案:

答案 0 :(得分:4)

这些网站使用mod_rewrite使用正则表达式

对请求的URL执行“重写”

编辑:

重写:domainname.com/Page/3

domainname.com/Page/content.php?page=3

.htaccess文件中看起来像这样:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([a-zA-Z]*)/(.*)$ /content.php/$1/page=$2 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /error_with_mod_rewrite.html
</IfModule>

这里我也对var名称限制为大写或小写的字母。

答案 1 :(得分:0)

“URL重写”是执行自定义URL结构的功能。这是大多数常见Web服务器中非常常见且重要的功能。 URL重写不仅适用于Apache。例如,

Apache使用Mod_Rewrite模块。

Nginx使用'Rewrite'和'Try_Files'指令。

Cherokee具有内置功能,可从管理员面板配置。

还有更多的例子,这些只是我曾经使用过的一些例子。另外,我听说过一些项目在编程代码中重写了。对于新的特定于语言的Web服务器,这种情况变得更加普遍。