php输出重定向,php 重定向跳转

发布时间:2022-11-23

本文目录一览:

  1. php使用curl访问的页面中,出现重定向时, 如何获取重定向后的内容
  2. PHP如何使404页面重定向
  3. php网站建设怎么做301重定向设置
  4. PHP后台任务运行

php使用curl访问的页面中,出现重定向时, 如何获取重定向后的内容

程序没问题,能得到网页内容并输出。 有可能是你的 xxx.php 没有重定向成功。 如果在Linux下,可以先用

wget

看看有没有输出想要的结果。 我用来测试的 xxx.php

function redirect($url)
{
    if (headers_sent()) {
        return false;
    }
    if (substr($url, 0, 4) != 'http') {
        $schema = $_SERVER['SERVER_PORT'] == '443' ? 'https' : 'http';
        $host = strlen($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
        $url = "$schema://$host$to";
    }
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: $url");
    exit();
}
redirect('');

PHP如何使404页面重定向

最近在改一些东西,包括Discuz论坛,在处理Discuzde修改时特别是重新写了一个404de页面,让用户访问不存在de页面时去访问这个404页面。但是遇到了一个很奇怪de问题,即无法重定向到这个页面。 最初操作:

  1. 把apache中de配置文件里 加入代码:ErrorDocument 404 /404.php
  2. 在404页面de代码里加上 <?php header("HTTP/1.0 404 Not Found") ?>。这个方法是向客户端发送一个自然deHTTP头。这个方法要在没you向客户端发送任何信息之前使用,因此加在404.phpde文件头最好。 经过对配置文件和DZ论坛代码de查看,发现原因:rewrite规则问题,即我做伪静态de处理,导致第二种地址规则you效,于是已经pass过了服务器层,apachede404定义不再起作用,所以在读取数据dephp文件会被执行。针对这种情况应该做处理。 处理:
  3. 找到被执行de文件:如 viewthread.php
  4. 在查询数据后,加上对数据de判断,如果为空,则填写重定向代码;
  5. 代码:
if(如果没you任何结果) {
    //以前是仅仅显示“该帖子已经不存在”de提示,现在是:
    require('/404.php');
    @header('HTTP/1.1 404 Not Found');
    @header('Status: 404 Not Found');
    exit;
}

结果: 以上问题解决,可以以404de状态重定向到我自定义de404页面。

php网站建设怎么做301重定向设置

做网站优化,我们基本知道url标准化需要采用301重定向。重定向说直白点,就是通过方法将各种网络请求重新定个方向转到其它位置,也就是通常说的,网页跳转。那么如何设置和制作301重定向呢?下面列举几个比较常见的情况:

步骤/方法

第一种:对整个网站的多个页面设置301重定向方法

如果要对整个网站设置301重定向的话,建议大家还是单独建立一个301.php,文件名可以自己取。代码如下:

$the_host = $_SERVER['HTTP_HOST']; //取得进入所输入的域名
$the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; //判断地址后面部分
$the_url = strtolower($the_url); //将英文字母转成小写
if ($the_url == "/index.php") { //判断是不是首页
    $the_url = ""; //如果是首页,赋值为空
}
if ($the_host !== '') { //如果域名不是带www的网址那么进行下面的301跳转
    header('HTTP/1.1 301 Moved Permanently'); //发出301头部
    header('Location:'.$the_url); //跳转到带www的网址
}

注意一下:代码 if($the_host !== '') 中的 !== 是不完全等于的意思,也可以用 != 不等于,这样,除了可以将 siyuan-seo.com 跳转到带www的网址,还可以把所有绑定到这个空间的域名跳转的。 301.php文件写好后,用ftp软件上传到网站根目录下,一般就是web文件下。那么怎么调用呢?其实也很简单。 在需要设置301重定向的页面中调用301.php,代码:

<?php include("301.php"); //301重定向 ?>

将这个代码放到你所有网页的最前面,这样就做好了。

第二种:网站单个页面设置301重定向方法

如果仅仅是网站中某个单页面进行301重定向设置,其实很简单,只要在PHP页面的头部加上下面两行代码就可以了:

<?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: ");
?>

其实,大多数情况下,我们一般是不需要设置301重定向的,用到的情况也是很少,大家知道怎么做就可以了。 当你发现自己的才华撑不起野心时,就请安静下来学习吧。

PHP后台任务运行

在运行前 先要了解一下 什么是文件描述符。

什么是文件描述符?

文件描述符是一个简单的正整数,用以标明每一个被进程所打开的文件和socket。 最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应。

"21 file" 和 " file 21" 区别?

  1. php test.php 21 file:错误输出到终端,标准输出被重定向到文件 file
  2. php test.php file 21:标准输出被重定向到文件 file,然后错误输出也重定向到和标准输出一样,所以错误也输出到文件 filenohup 命令可以在用户退出终端后仍然执行程序, "21 /dev/null" 表示不显示标准输出和错误输出, 最后的 & 表示推到后台执行。