Showing posts with label Redirect. Show all posts
Showing posts with label Redirect. Show all posts

Friday, January 09, 2009

页面重定向与url中的hash在不同的浏览器中的表现

访问时url上带有hash(如http://localhost/a.php#test),重定向到b.php页面时,当前a.php页上hash会被带到b.php页面上,在Firefox/Opera上测试的效果是如此,但IE6上则直接到b.php页,不会将a.php页上hash值带过来。
示例代码:
a.php
<php
header("Location: b.php");
?>
b.php
<php
?>
访问http://localhost/a.php#test,跳转完成后url为http://localhost/b.php#test

Saturday, April 05, 2008

PHP 301 permanently redirect [php5.1 manual]


<?php

/**
* PHP下的301重定向
* HTTP Protocol defined status codes
* @param int $num
*/

function HTTPStatus($num) {

static $http = array (
100 => "HTTP/1.1 100 Continue",
101 => "HTTP/1.1 101 Switching Protocols",
200 => "HTTP/1.1 200 OK",
201 => "HTTP/1.1 201 Created",
202 => "HTTP/1.1 202 Accepted",
203 => "HTTP/1.1 203 Non-Authoritative Information",
204 => "HTTP/1.1 204 No Content",
205 => "HTTP/1.1 205 Reset Content",
206 => "HTTP/1.1 206 Partial Content",
300 => "HTTP/1.1 300 Multiple Choices",
301 => "HTTP/1.1 301 Moved Permanently",
302 => "HTTP/1.1 302 Found",
303 => "HTTP/1.1 303 See Other",
304 => "HTTP/1.1 304 Not Modified",
305 => "HTTP/1.1 305 Use Proxy",
307 => "HTTP/1.1 307 Temporary Redirect",
400 => "HTTP/1.1 400 Bad Request",
401 => "HTTP/1.1 401 Unauthorized",
402 => "HTTP/1.1 402 Payment Required",
403 => "HTTP/1.1 403 Forbidden",
404 => "HTTP/1.1 404 Not Found",
405 => "HTTP/1.1 405 Method Not Allowed",
406 => "HTTP/1.1 406 Not Acceptable",
407 => "HTTP/1.1 407 Proxy Authentication Required",
408 => "HTTP/1.1 408 Request Time-out",
409 => "HTTP/1.1 409 Conflict",
410 => "HTTP/1.1 410 Gone",
411 => "HTTP/1.1 411 Length Required",
412 => "HTTP/1.1 412 Precondition Failed",
413 => "HTTP/1.1 413 Request Entity Too Large",
414 => "HTTP/1.1 414 Request-URI Too Large",
415 => "HTTP/1.1 415 Unsupported Media Type",
416 => "HTTP/1.1 416 Requested range not satisfiable",
417 => "HTTP/1.1 417 Expectation Failed",
500 => "HTTP/1.1 500 Internal Server Error",
501 => "HTTP/1.1 501 Not Implemented",
502 => "HTTP/1.1 502 Bad Gateway",
503 => "HTTP/1.1 503 Service Unavailable",
504 => "HTTP/1.1 504 Gateway Time-out"
);

header($http[$num]);
}

HTTPStatus(301);
header( "Location: http://www.test.com" );

// apache2 access_log
// 127.0.0.1 - - [05/Apr/2008:21:45:56 +0800] "GET /redirect301.php HTTP/1.1" 301 -
// 127.0.0.1 - - [05/Apr/2008:21:45:58 +0800] "GET / HTTP/1.1" 200 859
?>

Thursday, March 13, 2008

Redirect STDOUT in Ruby

若想对标准输入、输出、错误输出等进行重定向(redirect)时,可以使用IO#reopen:
STDOUT.reopen("/tmp/foo", "a+")
不建议使用: $stdout = File.open("/tmp/foo", "a+"), 这还有个输出缓存的过程,需要用IO#sync(IO#fsync)或者是IO#flush才会将输入写入log中。


Reference:
http://www.ruby-lang.org.cn/forums/archiver/tid-39.html

Wednesday, December 05, 2007