我知道这是一个非常受欢迎的问题。很多人说将公共内容移动到根目录(由于安全问题我觉得很尴尬),重写.htaccess,创建虚拟主机。
我尝试创建虚拟主机,因为我认为这是更可接受的解决方案。
但是我的配置遇到了一些问题:
我在此期间正在运行easyphp,我喜欢测试我是否可以在设置它之前删除网址中的公共路线。
的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/ 时,它会加载文件列表而不是公共内的项目
答案 0 :(得分:0)
当您在c-panel中为您的域选择目录时,只需提供路径直到Laravel的公共目录,而不仅仅是Laravel的根目录。这样你根本不需要改变.htaccess。
我刚刚将我的网站上传到制作中并按照上述步骤操作。它工作得非常好。
答案 1 :(得分:0)
这是我的配置对我来说很好。首先,您的虚拟主机配置应该是这样的:
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
是否已启用。
希望有所帮助。问候。