将laravel安装重定向到子文件夹中,隐藏子文件夹

时间:2017-02-26 19:42:16

标签: laravel .htaccess mod-rewrite url-rewriting

假设我已在子文件夹上安装了laravel:我将所有应用程序内容放在html根目录之外,重命名为" public"目录在" laravel"并在html根目录下移动。
我可以通过连接到www.mydomain.com/laravel来查看该应用程序 我在root html文件夹中使用了以下.htaccess:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteCond %{REQUEST_URI} !^/laravel/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /laravel/$1

RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(/)?$ laravel/ [L]

现在我可以直接从www.mydomain.com访问我的网站了 但我发现我仍然可以从www.mydomain.com/laravel访问它...并且由于所有链接都是从基本网址开始生成的,因此菜单和每个锚点都指向www.mydomain.com/laravel ..甚至页面的规范链接包含" laravel"。
问题:

  1. 有没有办法避免这个??
  2. 我应该为此担心吗?
  3. 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您使用的是apache,则需要配置主机。 http-vhosts.confhttpd.conf或类似文件。

<VirtualHost >
    ...
    <Directory "path/to/your/root/html/laravel">

    </Directory>
</VirtualHost>

所以你需要做的就是改变目录路径,直接指向html目录下的laravel文件夹。

如果您这样做,请删除您在.htaccess

中添加的行
RewriteCond %{REQUEST_URI} !^/laravel/
...
RewriteRule ^(/)?$ laravel/ [L]

.htaccess文件放回laravel目录,以便它可以直接从那里提供页面。