{"id":205,"date":"2011-11-21T01:15:56","date_gmt":"2011-11-21T01:15:56","guid":{"rendered":"eae27d77ca20db309e056e3d2dcd7d69"},"modified":"2011-11-21T01:15:56","modified_gmt":"2011-11-21T01:15:56","slug":"","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/205","title":{"rendered":"PHP Headers Examples - 301,302, Redirects, 404, Javascript, Download, Authentication dialog Headers"},"content":{"rendered":"<p><span style=\"line-height:20px;font-family:Verdana;color:#494949;font-size:12px;\"><b>301 moved permanently (redirect):<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'HTTP\/1.1&nbsp;301&nbsp;Moved&nbsp;Permanently'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Location:&nbsp;http:\/\/www.example.com'<\/span><span style=\"color:#007700;\">);<br \/>\ndie();<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"302\" rel=\"nofollow\"><\/a><b>302 moved temporarily(redirect):<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Location:&nbsp;http:\/\/www.example.com'<\/span><span style=\"color:#007700;\">);<br \/>\ndie();<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"404\" rel=\"nofollow\"><\/a><b>404 Page Not Found:<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'HTTP\/1.1&nbsp;404&nbsp;Not&nbsp;Found'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"serv\" rel=\"nofollow\"><\/a><b>Service not avaliable:<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'HTTP\/1.1&nbsp;503&nbsp;Service&nbsp;Temporarily&nbsp;Unavailable'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Status:&nbsp;503&nbsp;Service&nbsp;Temporarily&nbsp;Unavailable'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Retry-After:&nbsp;60'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"css\" rel=\"nofollow\"><\/a><b>CSS:<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;text\/css'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"js\" rel=\"nofollow\"><\/a><b>Javascript header:<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;application\/javascript'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"images\" rel=\"nofollow\"><\/a><b>Images:<\/b><br \/>\nFor JPEG(jpg):&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;image\/jpeg'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><br \/>\nFor PNG:&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;image\/png'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><br \/>\nFor BMP:&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;image\/bmp'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"pdf\" rel=\"nofollow\"><\/a><b>PDF (output pdf with php):<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;application\/pdf'<\/span><span style=\"color:#007700;\">);<br \/>\necho&nbsp;<\/span><span style=\"color:#0000bb;\">file_get_contents<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'filename.pdf'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"cache\" rel=\"nofollow\"><\/a><b>Cache (force browsers not to cache files):<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Expires:&nbsp;Sat,&nbsp;26&nbsp;Jul&nbsp;1997&nbsp;05:00:00&nbsp;GMT'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Cache-Control:&nbsp;no-store,&nbsp;no-cache,&nbsp;must-revalidate'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Cache-Control:&nbsp;pre-check=0,&nbsp;post-check=0,&nbsp;max-age=0'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header&nbsp;<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Pragma:&nbsp;no-cache'<\/span><span style=\"color:#007700;\">);&nbsp;<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"downdialog\" rel=\"nofollow\"><\/a><b>Download dialog:<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Disposition:&nbsp;attachment;&nbsp;filename='&nbsp;<\/span><span style=\"color:#007700;\">.&nbsp;<\/span><span style=\"color:#0000bb;\">urlencode<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#0000bb;\">$f<\/span><span style=\"color:#007700;\">));&nbsp;&nbsp;&nbsp;<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;application\/force-download'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;application\/octet-stream'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Type:&nbsp;application\/download'<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Description:&nbsp;File&nbsp;Transfer'<\/span><span style=\"color:#007700;\">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Content-Length:&nbsp;'&nbsp;<\/span><span style=\"color:#007700;\">.&nbsp;<\/span><span style=\"color:#0000bb;\">filesize<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#0000bb;\">$f<\/span><span style=\"color:#007700;\">));<br \/>\necho&nbsp;<\/span><span style=\"color:#0000bb;\">file_get_contents<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#0000bb;\">$f<\/span><span style=\"color:#007700;\">);<br \/>\n<\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><a id=\"auth\" rel=\"nofollow\"><\/a><b>Authentication (force the browser to pop up a Username\/Password input window) - only available when PHP is running as an Apache module:<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/>\n<span style=\"color:#0000bb;\">&lt;?php<br \/>\n<\/span><span style=\"color:#007700;\">if&nbsp;(!isset(<\/span><span style=\"color:#0000bb;\">$_SERVER<\/span><span style=\"color:#007700;\">[<\/span><span style=\"color:#dd0000;\">'PHP_AUTH_USER'<\/span><span style=\"color:#007700;\">]))&nbsp;{<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'WWW-Authenticate:&nbsp;Basic&nbsp;realm=\"The&nbsp;Realm\"'<\/span><span style=\"color:#007700;\">);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'HTTP\/1.0&nbsp;401&nbsp;Unauthorized'<\/span><span style=\"color:#007700;\">);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color:#dd0000;\">'If&nbsp;cancel&nbsp;is&nbsp;pressed&nbsp;this&nbsp;text&nbsp;shows'<\/span><span style=\"color:#007700;\">;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;die();<br \/>\n}&nbsp;else&nbsp;{<br \/>\n<\/span><span style=\"color:#ff8000;\">\/\/always&nbsp;escape&nbsp;your&nbsp;data\/\/<br \/>\n<\/span><span style=\"color:#0000bb;\">$user<\/span><span style=\"color:#007700;\">=<\/span><span style=\"color:#dd0000;\">'user'<\/span><span style=\"color:#007700;\">;<br \/>\n<\/span><span style=\"color:#0000bb;\">$pass<\/span><span style=\"color:#007700;\">=<\/span><span style=\"color:#dd0000;\">'pass'<\/span><span style=\"color:#007700;\">;<br \/>\n&nbsp;&nbsp;&nbsp;if(<\/span><span style=\"color:#0000bb;\">$_SERVER<\/span><span style=\"color:#007700;\">[<\/span><span style=\"color:#dd0000;\">'PHP_AUTH_USER'<\/span><span style=\"color:#007700;\">]==<\/span><span style=\"color:#0000bb;\">$user&nbsp;<\/span><span style=\"color:#007700;\">&amp;&amp;&nbsp;<\/span><span style=\"color:#0000bb;\">$_SERVER<\/span><span style=\"color:#007700;\">[<\/span><span style=\"color:#dd0000;\">'PHP_AUTH_PW'<\/span><span style=\"color:#007700;\">]==<\/span><span style=\"color:#0000bb;\">$pass<\/span><span style=\"color:#007700;\">){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color:#dd0000;\">'Authorized'<\/span><span style=\"color:#007700;\">;<br \/>\n}<br \/>\n}<br \/>\n<\/span><\/span><\/code><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p><span style=\"line-height:20px;font-family:Verdana;color:#494949;font-size:12px;\"><b>301 moved permanently (redirect):<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/><span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'HTTP\/1.1&nbsp;301&nbsp;Moved&nbsp;Permanently'<\/span><span style=\"color:#007700;\">);<br \/><\/span><span style=\"color:#0000bb;\">header<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Location:&nbsp;http:\/\/www.example.com'<\/span><span style=\"color:#007700;\">);<br \/>\ndie();<br \/><\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&nbsp;<\/span><\/code><\/p>\n<p><b>302 moved temporarily(redirect):<\/b>&nbsp;<code style=\"margin:0.5em 0px;\"><span style=\"color:#000000;\"><br \/><span style=\"color:#0000bb;\">&lt;?php&nbsp;<br \/>\nheader<\/span><span style=\"color:#007700;\">(<\/span><span style=\"color:#dd0000;\">'Location:&nbsp;http:\/\/www.example.com'<\/span><span style=\"color:#007700;\">);<br \/>\ndie();<br \/><\/span><span style=\"color:#0000bb;\">?&gt;<\/span>&#038;...<\/span><\/code><\/span> <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/205\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[273],"tags":[27],"class_list":["post-205","post","type-post","status-publish","format-standard","hentry","category-article","tag-php"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=205"}],"version-history":[{"count":0,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/205\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}