SEO友好型HTACCESS 301,用于将非www重定向到www PLUS .php到non.php PLUS http重定向到htps

时间:2018-11-11 16:23:54

标签: php apache .htaccess redirect seo

我在PHP上有一个自定义构建的非CMS网站。

我目前设置的.htaccess的方式是允许我使用不带“ .php”部分的网址,并将其重定向到301,将所有非www请求都重定向到www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA] 

现在我们要切换到HTTPS。

如何在.htaccess中从http://https://进行正确的SEO友好重定向?

我尝试将第三个字符串替换为

RewriteRule (.*) https://www.example.com/$1 [R=301,L]

但这并不能解决问题...

还可以选择是否有方法为.php请求设置301重定向,以重定向到非.php变体?尽管看起来这意味着重定向到相同的页面,但不确定这样做是否SEO安全,或者甚至会导致重定向循环?

1 个答案:

答案 0 :(得分:0)

您可以使用以下htaccess规则(只需在第二个RewriteCond中将example\.com替换为yourdomain\.com

RewriteEngine On


#301 redirect from http to https + non-www to www
RewriteCond ℅{HTTPS} off [OR]
RewriteCond ℅{HTTP_HOST} ^example\.com$ [NC]
RewriteCond ℅{HTTP_HOST} (?:www\.)?(.+)$
RewriteRule ^ https://www.℅1℅{REQUEST_URI} [NE,L,R]

#remove .php extension
#redirect to remove .php from URLs
RewriteCond ℅{THE_REQUEST} /(.+)\.php [NC]
RewriteRule ^ /℅1 [L,R=301]
#handle extension less php URLs
RewriteCond ℅{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/?$ /$1.php [L]