我觉得这很简单,但我真的很困惑。
因此,我认为我必须将myproject.com的每个请求重新路由到myproject.com/index.php
app / config / app.php:
'url' => 'http://127.0.0.1/public',
etc / httpd / conf / httpd.conf:
<VirtualHost *:80>
DocumentRoot "/var/www/html/myproject/public/"
ServerName myproject.com
</VirtualHost>
主机文件中未配置任何内容。
目标:如何使用隐藏索引将来自 myproject.com 的所有请求重新路由到 myproject.com/index.php 。 php部分来自用户?
访客应该看到:myproject.com 但我希望他们真正达到:myproject.com/index.php
解决方法:
<VirtualHost *:80>
DocumentRoot "/var/www/html/myproject/public/index.php"
ServerName myproject.com
</VirtualHost>
结果:我无法通过404获取资产(js,css文件)结果,因为我的浏览器不允许访问 myproject.com/public/ 。在此虚拟主机设置中,Root已设置为 myproject.com/public/index.php 。
答案 0 :(得分:2)
检查公共目录中是否存在.htaccess文件。
如果没有,请查看Pretty Url部分。
另外,请确保在vhost配置中添加<Directory>
指令只是为了安全起见。
例如:
<Directory "/var/www/html/myproject/public/">
AllowOverride All
Allow from All
</Directory>
关于app.php中的'url' => 'http://127.0.0.1/public',
我非常确定/public
有点额外。
'url' => 'http://127.0.0.1',
应该可以正常工作。
答案 1 :(得分:1)
您需要为此重写规则:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Laravel docs:http://laravel.com/docs/5.1#pretty-urls