是否有一种简单的方法可以避免创建所有文件夹

时间:2011-04-15 15:15:06

标签: php .htaccess url mod-rewrite

好的,我有这个site ....与网址

http://posnation.com/

并且有很多页面我需要保存网址结构......就像这样

http://posnation.com/restaurant_pos
http://posnation.com/quickservice_pos
http://dev.posnation.com/retail_pos

...分机

我现在的问题是我想为所有这些页面保存相同的URL,我正在寻找最好的方法。它现在的工作方式是使用miva中的代码完成,我们正在离开miva ....我知道我可以创建一个名为restaurant_pos的文件夹或任何网址,并在那里创建一个index.php。这种方法将起作用但问题是我需要为600个不同的页面做这个,我不想用最好的方法创建600个文件夹。

任何想法

2 个答案:

答案 0 :(得分:2)

您应该使用.htaccess将所有请求路由到单个文件,例如index.php,并根据请求的URL从那里进行服务。

服务器根目录下的.htaccess文件会将所有请求路由到index.php:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L]
</IfModule>

现在你应该解析$ _REQUEST ['route']来识别你应该服务的文件。这是一个基于URL的最后一个元素(例如:pos)来提供页面的示例:

<?php

$parts = explode($_REQUEST['route']);

if ($parts[count($parts) - 1] == 'pos') {
    include "pages/pos.php";
}

你肯定需要编写自己的逻辑,上面只是一个例子。

希望这有帮助。

答案 1 :(得分:1)

通常,最简单的方法是创建一个.htaccess文件,将所有请求重定向到/index.php。在/.index.php中,您可能使用$_SERVER['REQUEST_URI']分析网址,并包含相应的内容。

下载样本htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

在你的/.index.php做类似的事情......(这只是一个非常简单的例子)

require 'pages/' . $_SERVER['REQUEST_URI'] . '.php';

现在,如果有人前往http://posnation.com/restaurant_pos pages/restaurant_pos.php,则会包括在内。

pages/restaurant_pos.php也可以包含页眉和页脚。

<?php require( HEADER_FILE ) ?>
restaurant_pos content
<?php require( FOOTER_FILE ) ?>