此问题已在此处有答案:
Apache redirection of both http to https and non www to www(1个答案)
4天前关闭。
我正在尝试为Laravel 9应用程序设置301重定向。该应用程序托管在apache2服务器上。
1.从http重定向到https
1.从https://example.com重定向到https://www.example.com
我在我的.htaccess文件中使用以下代码:
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^public_html\/example\/public$ "https\:\/\/www\.example\.com\/" [R=301,L]
我不知道我在这里错过了什么。我已经花了过去几天试图解决这个问题,但找不到任何工作的解决方案。
2条答案
按热度按时间368yc8dk1#
我能够通过在RewriteEngine On之后将以下内容添加到.htaccess文件来设置301重定向:
qnzebej02#
您提供的代码似乎不正确,无法实现您提到的重定向。下面是一个正确的版本,应该可以工作:
规则解释:
第一条规则检查请求是否使用HTTP(而不是HTTPS),如果是,则使用[R=301]标志重定向到相同的URL,但使用HTTPS,这表示永久重定向。%{HTTP_HOST}和%{REQUEST_URI}分别用于捕获域名和请求的URI。
第二条规则检查请求是否使用HTTPS并且域名开头没有“www.”,如果是,则重定向到相同的URL,但使用[R=301]标志添加“www.”,这表示永久重定向。%{HTTP_HOST}和%{REQUEST_URI}分别用于捕获域名和请求的URI。
请确保将这些规则放在.htaccess文件的顶部,在任何其他重写规则之上,并在RewriteEngine On指令之后。此外,请记住在对.htaccess文件进行更改后重新启动Apache服务器,以使更改生效。