2014-07-17 96 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