【发布时间】:2009-12-08 14:33:38
【问题描述】:
这是我的目录结构
/home
/template
/classifieds
/listings
我想隐藏 /template 并想在 home 的 template 下显示所有文件。比如 /home/template/home.php 应该是 www.example.com/home.php 或者 /home/template/style.css 应该是 www.example.com/style.css
如果有人试图访问 example.com/template/.php,则应将其返回到 example.com/.php,如果不存在,则应返回 404.php。
这是我的 htaccess 来处理。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} ^/template/.*php
RewriteRule . /$1 [NC,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Options -Indexes
还有我的 php 代码
if (!file_exists("template/" . $page))
include_once "template/404.php";
else
include_once "template/" . $page;
然而 我添加了更多内容,例如 /classified 和 /listings 应该按原样列出,即 example.com/classified/*.php
现在当我尝试访问 /answers/home.php 时,它会直接打开 home.php 而不是打开 index.php
这是我的新代码
if (!file_exists($segments[1] . '/' . $page))
include_once "template/404.php";
else
include_once $segments[1] . '/' . $page;
那么 htaccess 应该是什么样的?
【问题讨论】: