.htaccess重定向到HTTPS无法正常工作

时间:2015-12-31 14:57:59

标签: php apache .htaccess

RewriteEngine On

RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

这就是我现在的.htaccess目前的样子。第3行和第4行我从stackoverflow的另一个问题中获取,其余的只是删除.php文件扩展名。但重定向到https部分并不起作用。有什么想法吗?

修改

我刚刚发现问题出现在我的网站的apache文件位于apache的启用网站的文件夹中。我需要一个单独的块用于:80和:443端口,我无法弄清楚该怎么做,但这是另一个问题的话题。

4 个答案:

答案 0 :(得分:0)

以下是我用来强制执行https的内容,希望它可以使用。

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]

答案 1 :(得分:0)

您可以尝试在https:

上进行重定向
RewriteRule ^(.*)$ https://www.%1.%2/$1 [L,R=301]

答案 2 :(得分:0)

以下代码可能有效。 网址: - 主页

RewriteRule ^home$ index.php?page_slug=$0 [QSA]
RewriteRule ^home/$ index.php?page_slug=$0 [QSA]

这是URL-page / new

RewriteRule ^page/([a-zA-Z0-9-/]+)$ page.php?page_slug=$1 [QSA]
RewriteRule ^page/([a-zA-Z0-9-/]+)/$ page.php?page_slug=$1 [QSA]

答案 3 :(得分:0)

您可以使用以下代码从http重定向到https:

{{1}}