当虚拟主机指向公用文件夹

时间:2017-05-28 22:58:03

标签: laravel .htaccess ubuntu apache2

在这里和其他地方有无数的帖子请求帮助从实时服务器上的新laravel安装中取出public /和index.php。事实上,我有点尴尬地问这个问题。然而,鉴于有一种方法可以给猫皮肤,我觉得许多不同的解决方案有时会相互冲突并引起更多麻烦。

我已经取消了" public"在最近启动的laravel站点的url中,将virtualhost domainname.com.conf指向公用文件夹。

然而,这导致需要在所有请求中将index.php放在域之后,否则页面无法正常工作。

当我手动将index.php放入网址时,部分图片无法加载,因为它们没有硬编码。

此外,如果我将虚拟主机地址直接指向public / index.php,该网站可以工作,但大约10分钟后它就会停止工作,网站上的任何内容都不会加载,css,js图像。一切都停止了。我认为这与laravel视图缓存有一些关系,但清除它们并不会改变任何事情。

此时我不知所措。我已经花了+8小时进入这个时间并且非常绝望。

这是我公开的htaccess文件夹(laravel root中不需要htaccess吗?)

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

这与我用于其他域名的设置相同。 laravel现场成功。出于某种原因,index.php根本不会使用任何人的解决方案。

有任何帮助吗?我是否一直盯着相同的htaccess / virtualhost文件太久了?

1 个答案:

答案 0 :(得分:0)

好像你没有正确设置DirectoryIndex。

检查你的配置,在我的情况下,我在dir.conf文件中找到它:

file:/etc/apache2/mods-available/dir.conf

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm