我创建了一个Laravel应用程序,我在本地使用宅基地开发,并在生产服务器上进行在线开发。
我只有www.mydomain.com
的SSL证书,但mydomain.com
没有,
这就是为什么我强迫htaccess
重定向到https://www.*****
。我按照https://stackoverflow.com/a/13997498/2311074
myproject/public/.htaccess
重定向在我的生产服务器上工作正常但是我的本地环境没有重定向发生在宅基地上。为什么在我的本地环境中忽略重定向?
以下是完整的.htaccess
文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
答案 0 :(得分:3)
.htaccess
不适用于Homestead,因为it uses nginx。 .htaccess
适用于Apache。
答案 1 :(得分:1)
首先SSH
进入宅基地并运行命令
flip
它将停止nginx
,并将开始apache
。
现在您的.htaccess
可以使用了。
PS
另一种选择是在type: apache
文件中使用Homestead.yaml
。
但这出于某种原因对我不起作用。
答案 2 :(得分:0)
我有类似的问题。我的生产服务器使用Apache,并且我需要mod_rewrite。 Laravel甚至附带了.htaccess文件!
这是我在这里找到的一种优雅的解决方案。
在我的Homestead.yaml文件中添加“类型:apache”。
网站:
地图:mylocalapp.com
到:/ home / vagrant / code / public
类型:阿帕奇
重新部署使用Apache的流氓。
无所事事--provision