https重定向通过.htaccess无法正常工作

时间:2016-06-15 11:12:19

标签: php .htaccess laravel mod-rewrite https

我正在使用apachelaravel,并希望将我的所有请求重定向到https。 例如: 我想要这个网址

  

abc.com/my/test

重定向到

  

https://abc.123/my/test

目前我在文件

中有以下代码
  

/var/www/html/laravelProjet/public/.htaccess

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# For redirecting HTTP to HTTPS
# comment & un-comment below lines according to certificates
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

</IfModule>

问题: adobe htaccess设置会重定向,但路径错误。它重定向到

  

&#34; https://abc.123/index.php&#34;

我想将它重定向到上面提到的链接。

1 个答案:

答案 0 :(得分:0)

  

[L]标志使mod_rewrite停止处理规则集。在   大多数情况下,这意味着如果规则匹配,则没有进一步的规则   将被处理。

https://httpd.apache.org/docs/current/rewrite/flags.html

您可以尝试删除该行上的[L]标记:

RewriteRule ^ index.php [L]

您还可以使用PHP重定向到HTTPS:

if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
    $url = "https://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    header("Location: $url");
    exit;
}