以往 301 我都是設在 Apache 裡面,如下:
RewriteRule ^news$ http://example.com/news/ [R=301,NE,L]
想要在 PHP 送 301 / 302 Redirect 的 Header 要如何寫?
HTTP 定義 301 / 302 的 Header 意義:
- 301: 永久轉址 (Permanently Moved)
- 302: 臨時轉址 (Temporarily Moved)
PHP 送 301 / 302 轉址的 Header
PHP 301 Redirect (永久轉址)的寫法
- vim 301.php
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://example.com"); ?>
- vim 301.php # 新寫法
<?php header("Location: http://example.com", TRUE, 301); ?>
- $ curl -I http://localhost/301.php # 測試
HTTP/1.1 301 Moved Permanently Date: Fri, 20 Sep 2015 07:15:19 GMT Server: Apache/2.4.10 Location: http://example.com/ Content-Type: text/html; charset=UTF-8
PHP 302 Redirect 寫法
- vim 302.php
<?php header("Location: http://example.com"); ?>
- $ curl -I http://localhost/302.php # 測試
HTTP/1.1 302 Found Date: Fri, 20 Sep 2015 07:15:37 GMT Server: Apache/2.4.10 Location: http://example.com/ Content-Type: text/html; charset=UTF-8
您好,想向您請教..
我的網站想要去掉前面的WWW,於是我在.htaccess用了這樣的語句,
RewriteEngine On
RewriteCond %{HTTP_HOST} !^AA\.net$ [NC]
RewriteRule ^(.*)$ http://AA.net/BB$1 [L,R=301]
先前也有試過
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.AA\.net$ [NC]
RewriteRule ^(.*)$ http://AA.net/BB/$1 [R=301,L]
試過網路上搜尋到的很多方法,但都沒辦法把WWW去掉..
如果我輸入aa.net會連到aa.net/bb,輸入www.aa.net會連到aa.net/bb,
但是如果我是輸入到更下一層如www.aa.net/bb/cc,則會照樣連到www.aa.net/bb/cc,
甚到從www.aa.net/bb/cc裡點擊任何連結所連到的都會有有帶WWW的..
請問我正確該如何作才能完全讓所有的WWW頁面都去掉WWW呢?
感謝您..
這樣子設定~
RewriteEngine On
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI}
您好,感謝您的回覆..
我照您指導的輸入這些..
RewriteEngine On
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]
[R=301,L]是我加上去的..
但是經過測試還是一樣呢..
我的電郵就是我的網站..有空的話還請您幫我看一下..
感謝您..
RewriteEngine On
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
試試看這個吧~
您好,
真的很感謝您回覆我的問題,但是我真的搞不定它,而且我很希望能處理好這個問題..
基於尊重專業的原則下,我願意在我能力所能及的範圍內支付一點點心意,請您幫我處理好轉址這個問題,如果可以的話,請您用電郵和我聯絡,我不是來亂的,也感謝您沒有嫌我嘍唆,謝謝您..