2013-12-18 36 views
0

对于“经典”网站,可以为每个网页创建一个/foldername/index.php。但是,使用WordPress,情况并非如此。例如,如果使用WordPress创建的网页的URI为http://myblog.org/some_page,则在您的虚拟主机的FTP中找不到文件夹www/myblog.org/some_page使用PHP,WordPress风格服务网页

我的问题是,我怎样才能为http://[MY_WEBSITE].com/[page_name]任何位置的任何page_name提供页面,而不会为每个page_name创建一个新文件夹?

+1

考查[htaccess的mod_rewrite的](http://www.branded3.com/blogs/htaccess-mod_rewrite-ultimate-guide /)。 – Marty

回答

0

该行为通过.htaccess文件处理(在Apache服务器中),其中rewrite rules已定义。重写规则基本上捕获传入流量并将这些请求引导到服务器上的文件(通常是单个页面,将作为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'; 
} 
+0

这是旧的,但我改变了第二个规则为'重写规则。 index.php [L] '它运作得非常好 – geoff

0

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

0

Wordpress使用模板,利用require()函数和一个通常称为“The Loop”的foreach循环来检索内容。

使用不同的模板调用不同的页面。如果您想确切知道如何计算此逻辑,请查看this.

1

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

+0

这会涉及到更改URL为'my-website.com/index.php?page = somepage'?否则,你会怎么做? – geoff

+0

是的,参数化的网址 – minas

+0

我确实知道这个功能,但那不完全是我想要的。我仍然想保留'my-site.com/my-page/my-subpage/ ...'URL样式,而不必为每个页面创建一个单独的'index.php'页面。 – geoff