使用PHP、WordPress风格提供网页服务


Serve webpages with PHP, WordPress style

对于"经典"网站,会为每个网页创建一个/foldername/index.php。然而,对于WordPress,情况并非如此。例如,如果使用URI为http://myblog.org/some_page的WordPress创建了一个页面,则在web主机的FTP中找不到文件夹www/myblog.org/some_page

那么,我的问题是,如何为任意page_name提供位于http://[MY_WEBSITE].com/[page_name]的页面,而不为每个page_name创建新文件夹?

一种方法是使用page_name作为公共文件的参数,并使用该参数来提供所需页面的内容。

该行为由.htaccess文件处理(在Apache服务器中),其中定义了重写规则。重写规则基本上捕获传入流量,并将这些请求引导到服务器上的文件(通常是充当router的单个页面)。

然后,路由器负责获取输入URI(通常通过PHP中的$_SERVER["REQUEST_URI"]),并确定如何处理它,以及最终该请求的输出。

至于一个不错的路由器,你可以看看klein.php。还有一个简单的例子:

# htaccess file
RewriteEngine On
RewriteRule ^[^'.]+$ index.php

index.php:

$route = $_SERVER["REQUEST_URI"];
if($route === '/home')
{
    echo 'This is the homepage';
}

您告诉服务器重写URL。大多数服务器都以自己的方式进行操作,因此要了解如何进行操作,请查看服务器的文档。

Wordpress使用模板,这些模板利用require()函数和通常称为"循环"的foreach循环来检索内容。

使用不同的模板调用不同的页面。如果你想知道这个逻辑是如何计算的,可以看看这个。