使用直接链接时function.include错误

时间:2013-06-25 21:22:00

标签: php include

我正在尝试用日历插件替换事件的旧存档页面。在archive.php我有以下代码:

<?php get_header();
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
global $gateway_parent_id;


if ( $yourcat->slug == 'events' ){
include 'page-forum.php';
}else{

?>

当我将第8行更改为     include 'http://www.mysite.com/events/';  我收到以下错误:

Warning: include() [function.include]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /data/23/2/34/80/21912080/user/2412808/htdocs/wp-content/themes/ga/archive.php on line 8

Warning: include(http://www.mysite.com/events/) [function.include]: failed to open stream: no suitable wrapper could be found in /data/23/2/34/80/21912080/user/2412808/htdocs/wp-content/themes/ga/archive.php on line 8

Warning: include() [function.include]: Failed opening 'http://www.mysite.com/events/' for inclusion (include_path='.:/usr/services/vux/lib/php') in /data/23/2/34/80/21912080/user/2412080/htdocs/wp-content/themes/ga/archive.php on line 8

我做错了什么?

3 个答案:

答案 0 :(得分:1)

我在Wordpress中找到了一个更好的解决方案 - 这适用于重定向到绝对网址并避免使用htaccess:

<?php
wp_redirect( $location, $status );
exit;
?>

$ location是要指向的网址,$ status是301(永久重定向)或302(临时)

http://codex.wordpress.org/Function_Reference/wp_redirect

答案 1 :(得分:0)

您正尝试通过包含该文件。在服务器的PHP配置中禁用的url。您可以通过在php.ini中设置allow_url_fopen来解决此问题,或者更好地使用文件路径。

要通过文件路径包含文件,请使用相对于当前php文件的文件名的完整路径,并根据需要使用../上传目录。例如,如果我想在/root/test/save.php中加入/root/dir/working/go.php,我会使用include ('../../test/save.php');include('/root/test/save.php');

答案 2 :(得分:0)

include()及其亲属采用文件系统路径,而不是相对于文档根目录的Web路径。要获取父目录,请使用../

例如,如果要包含的文件与archive.php位于不同的目录中,例如 includes ,则可以执行以下操作:

include('../includes/file.php');

如果以/开头,将使用绝对系统文件路径(换句话说:任何以斜杠开头的路径都是绝对路径)。例如:

include('/home/user/public_html/project/include/config.php'); 

我希望这能回答你的问题。