首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当将漂亮的urls映射到实际的urls时,包含失败(PHP/..htaccess)

当将漂亮的urls映射到实际的urls时,包含失败(PHP/..htaccess)
EN

Stack Overflow用户
提问于 2015-01-23 15:09:47
回答 2查看 82关注 0票数 0

当我第一次尝试制作漂亮的URL (这是我的系统)时,.htaccess将所有内容映射回index.php,index.php将URL拆分成一个数组,然后使用case语句来决定如何继续。

.htaccess:

代码语言:javascript
运行
复制
RewriteBase /

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^.*$ ./index.php

index.php:

代码语言:javascript
运行
复制
$request = $_SERVER['REQUEST_URI'];
#split the path by '/'
$params = explode("/", $request);
var_dump($params);
if(!isset($params[1]) || $params[1] == "") {
    require_once('inc/content_default.php');
} else if ($params[1] == "posthandler"){
    require_once('bin/posthandler.php');
} else {
    switch($params[1]) {
        case "dashboard":
            include('inc/content_active.php?ign=' . $params[2]);
        break;
    }
}

问题是,当url为: domain/dashboard/AviateX14 14时,我得到了错误:

代码语言:javascript
运行
复制
Warning: include() [function.include]: Failed opening '/inc/content_active.php?ign=AviateX14' for inclusion (include_path='.:/opt/php-5.3/pear') in /home/u502822836/public_html/index.php on line 92

文件确实存在,问题在于代码,我知道这一点,因为我已经通过插入include('index.php')进行了测试,但它仍然失败。该文件确实存在于inc/content_active.php。

我做错什么了?

编辑: var_dump of $params是:

代码语言:javascript
运行
复制
array(3) { [0]=> string(0) "" [1]=> string(9) "dashboard" [2]=> string(9) "AviateX14" } 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-23 15:19:51

您不能在php include()中拥有查询字符串,因为这实际上并不是被请求的。您必须自己填写服务器变量中的参数:

代码语言:javascript
运行
复制
switch($params[1]) {
    case "dashboard":
        $_GET['ign']=$params[2];
        include('inc/content_active.php');
    break;
}
票数 1
EN

Stack Overflow用户

发布于 2015-01-23 15:22:44

您要求PHP查找一个名为:inc/content_active.php?ign=AviateX14的文件,包括?ign=AviateX14部分。

解决这一问题的一种方法是:

代码语言:javascript
运行
复制
$_GET['ign'] = $params[2];
include( 'inc/content_active.php' );

但是,分配给$_GET并不是一个很好的实践;您可以做更好的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28112806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档