2014-07-17 95 views
1

爲了SEO的目的,我最近有一個客戶端網站更改了一個頁面名稱,我們需要對舊鏈接重新定向到新鏈接,但由於某種原因,它無法正常工作。.htaccess 301使用HTTPS重定向

的的.htaccess看起來是這樣的:

AddHandler php5-script .php 
RewriteEngine On # Turn on the rewriting engine 
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

Redirect 301 /oldpage1 /newpage1 
Redirect 301 /oldpage2 /newpage2 

但頁面被重定向爲:

http://examplesite.com:443/newpage1 

我甚至試過做301是這樣的:

Redirect 301 /oldpage1 https://examplesite.com/newpage1 

兩種方式產生相同的結果。有任何想法嗎?

+1

什麼被重定向到'HTTP://examplesite.com:443/newpage1'? – t3chguy

+0

如果我從'https:// examplesite.com/oldpage1'點擊一個鏈接,它應該轉到'https:// examplesite.com/newpage1',而是轉到'http://examplesite.com:443/ newpage1' – jassok

回答

1

您不應該將mod_rewrite規則與mod_alias這些規則混合在一起,並且還需要在內部重寫之前保留外部重定向規則。

試試這個:

AddHandler php5-script .php 
RewriteEngine On 

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 

RewriteRule ^oldpage1/?$ /newpage1 [L,NC,R=301] 
RewriteRule ^oldpage2/?$ /newpage2 [L,NC,R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

謝謝,我將在今晚晚些時候在非高峯時段嘗試一下,並告訴你它是如何工作的。 – jassok