【发布时间】:2015-09-12 09:22:02
【问题描述】:
我正在尝试为我的一位用户在 Web 根目录的子文件夹中安装 Laravel 4 应用程序。我知道通过网络访问整个框架存在重大安全问题。我计划在了解如何使其发挥作用后单独解决这些问题。
我已经尝试了所有我能想到的 Apache 别名和重写规则的组合,但似乎没有任何效果。这是我的目录结构:
/home/username/public_html
.htaccess
my_laravel_app/
app/
bootstrap/
public/
.htaccess
index.php
robots.txt
...etc (standard Laravel 4 public folder contents)
vendor/
...etc (standard Laravel 4 files and folders)
第一个.htaccess 文件,直接列在用户public_html 目录下的文件,包含以下内容:
AuthType Basic
AuthName Private
Authuserfile /path/to/.htpasswd
Require valid-user
第二个 .htaccess 是标准的 Laravel 4 .htaccess 文件。它包含以下内容:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
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]
</IfModule>
我想基本上将这个my_laravel_app/public 目录视为一个 webroot,以便 Laravel 应用程序的运行方式与直接在域上正常安装 Laravel 的方式相同。
我相信我只需要编辑第一个 .htaccess 文件以包含将任何请求发送到 /my_laravel_app 到 my_laravel_app/public 的重写规则,但我似乎无法让它工作。有人可以帮忙吗?
【问题讨论】:
-
如果我没记错的话,最后的重写应该是
/my_laravel_app/public/index.php。哦,您还可以修改重写条件。我在另一台服务器上做的让我查一下
标签: php apache .htaccess mod-rewrite laravel-4