【发布时间】:2018-07-03 09:09:46
【问题描述】:
我有一个小问题,可能很容易解决,但我不知道如何解决。我有以下文件夹结构:
- 主网站 -- 网站内容 -- 更多内容 --- 名为 cms 的子文件夹 --- index.php --- content.php(当然还有更多)
index.php 文件如下:
if(isset($_GET['page'])){
require_once($_GET['page'].'.php');
}
子文件夹的 HTACCESS:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([\w-]+)/?$ index.php?page=$1 [QSA,L]
我试图在 index.php 中回显我的 $_GET['page'] 变量,每当我输入如下内容时:www.domain.com/cms/r 它给了我$_GET['page'] = r,这很好。但是,如果 $_GET 变量作为文件存在,我会收到 404 错误:www.domain.com/cms/content,它应该只显示我的 content.php 文件。
我到底做错了什么?感谢所有帮助:)
编辑:
似乎我可以让我的$_GET 工作,但它会忽略名称为$_GET 的文件是否存在。 www.domain.com/fluidify/content 不起作用,因为该文件夹中有一个名为 content.php 的文件,但是 www.domain.com/fluidify/testget 将遇到 testget 作为输出。
【问题讨论】:
-
所以如果文件不存在你希望它传递给 index.php?
-
不,我希望文件包含在 index.php 中,但是当文件存在时,它不起作用。我正在寻找是否可以在文件本身中找到任何问题,但这是数百个项目中唯一没有工作的项目......唯一的区别是这又是另一个服务器/托管
-
问题出在其他地方...子目录不记得会话,我需要安全才能加载文件...为什么名称中的服务器不包含
$_SESSION?我该如何解决这个问题? -
问题出在与此相关的其他地方,但必须以不同的方式解释...
标签: php .htaccess subdirectory