[英]How to configure laravel project for production server and remove public in url
我知道这是一个非常受欢迎的问题。 很多人说将公共内容移动到根目录(由于安全问题我觉得很尴尬),重写.htaccess,创建虚拟主机。
我尝试创建虚拟主机,因为我认为这是更可接受的解决方案。
但是我的配置遇到了一些问题:
我正在运行easyphp同时,我喜欢测试我是否可以在设置它之前删除url中的公共路径。
httpd.conf文件
NameVirtualhost *:80
<VirtualHost *:80>
DocumentRoot "${path}/data/localweb/quantum.dev/public"
ServerAdmin admin@localhost
ServerName quantum.dev
ServerAlias www.quantum.dev
<Directory "${path}/data/localweb/quantum.dev/public">
AllowOverride All
Options Indexes FollowSymLinks
Order deny,allow
Allow from quantum.dev
Deny from all
Require all granted
</Directory>
</VirtualHost>
我修改了C:\\ Windows \\ System32 \\ drivers \\ etc.
主机
127.0.0.1 quantum.dev
当我尝试浏览http://127.0.0.1/quantum.dev/时 ,它将加载文件列表而不是公共项目
请将所有更改还原到目录。 恢复项目的默认结构和配置。 如果我没有弄错我并纠正我,如果我,你正在使用共享托管服务提供商。 如果是这种情况,这是一种更恰当的方式。
在.htaccess中 ,您需要添加以下内容。
在文件的顶部添加以下行:
DirectoryIndex public/index.php
在这里:
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
将最后一条规则更改为:
RewriteRule ^ public/index.php [L]
现在,您需要做的就是将此文件(仅限.htaccess文件)移动到项目的根文件夹中。 通过这种方式,您可以将laravel项目结构维持在其原始状态。
把这个.htaccess文件放在公共文件夹附近
选项-MultiViews
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
当您在c-panel中为您的域选择目录时,只需提供路径直到Laravel的公共目录,而不仅仅是Laravel的根目录。 这样你根本不需要改变.htaccess。
我刚刚将我的网站上传到制作并按照上述步骤操作。 它工作得很好。
这是我的配置,对我来说很好。 首先,您的虚拟主机配置应该是这样的:
ServerAdmin webmaster@domaine.dev
ServerName domaine.dev
DocumentRoot /var/www/mysiteweb/public/
<Directory /var/www/mysiteweb/>
Options -Indexes
DirectoryIndex index.php index.html
AllowOverride All
</Directory>
之后,在.htaccess
laravel文件中进行此操作:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
不要忘记检查mod_rewrite
是否启用。
希望有所帮助。 问候。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.