【发布时间】:2012-01-10 15:09:29
【问题描述】:
我有以下结构
-www
\-subfolder
在www 我有我的主站点index.php。
在子文件夹中,我有一个管理 UI,我想在其中有另一个 index.php 用于管理 UI。
目前我来自/subfolder/index.php 的请求被重定向到www/index.php,基本上我的管理用户界面页面不会显示。
这是我的.htaccess 文件:
RewriteEngine On
RewriteRule ^$ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?lang=$1&page=$2 [L]
你能帮帮我吗?我在其他答案中尝试了几个选项,但由于我不是一个高级的网络开发人员,所以我无法工作。
@TerryE,对不起,如果我说得太粗鲁了。
我正在使用本地设置进行测试。 我已经安装了 Vertrigo 服务器,它为我提供了 Apache 服务器。在 Windows7 操作系统上运行。服务器安装在 Program files\VertrigoServ\Apache 文件夹中。
我的公共文件夹是 www。在那里我有我的主要站点定义。 .该网站通过127.0.0.1/index.php或127.0.0.1/在本地访问
我有站点本地化,因此 URL 构造为 /$lang/$page 例如<a href=" / <?php echo $lang; ?> / home "> HOME </a>
在主站点的index.php 中,我有以下内容:
$page = trim( ( isset( $_GET[ 'page' ] ) ? $_GET[ 'page' ] : 'home' ), '/' );
$lang = trim( ( isset( $_GET[ 'lang' ] ) ? $_GET[ 'lang' ] : 'en' ), '/' );
$langs = array( 'en', 'fr', 'ru' );
根据这些数据,我可以通过这种方式打开页面:
include 'html/'. $lang . '/' . $page . '.php';
我所有主站点的页面都位于www/html/$lang/
$_SERVER['REQUEST_URI']) 为主页提供/en/home。
127.0.0.1/en/home 工作
所有导航都适用于主站点。
但是,我创建了一个管理 UI,它位于文件夹 www/admin 中 - 在 www 的下一级。
在那里我没有任何本地化。我只有 EN 作为语言。 因此,在 admin 文件夹中 index.php 的顶部,我又有了
$page = trim( ( isset( $_GET[ 'page' ] ) ? $_GET[ 'page' ] : 'home' ), '/' );
不过,这里导航如下<a href=/admin/home"> HOME </a>
在此之后,我将在 admin 文件夹中的 index.php 中构建页面,如下所示:
include 'html/ . $page . '.php';
页面位于www/admin/html
这根本不起作用。每当我在管理 UI 中按下主页链接时,我都会被重定向到我的主站点(不存在的页面)。如果我在.htaccess 中添加RewriteRule ^subfolder/ - [L],我会得到HTTP 404 NOT Found error。
127.0.0.1/admin/home 不起作用。管理员内的任何其他导航也没有。感谢您愿意和耐心帮助我!
【问题讨论】: