【问题标题】:Redirect laravel installation in a subfolder, hiding the subfolder将 laravel 安装重定向到子文件夹,隐藏子文件夹
【发布时间】:2017-07-17 07:56:37
【问题描述】:

假设我在一个子文件夹中安装了 laravel:我将所有应用程序的东西放在 html 根目录之外,将“laravel”中的“public”目录重命名并移到 html 根目录下。
我可以通过连接到 www.mydomain.com/laravel 查看该应用程序
我在根 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 访问它......并且由于所有链接都是从基本 url 开始生成的,因此菜单和每个锚点 href 都指向 www.mydomain.com/laravel.. . 甚至页面的规范链接也包含“laravel”。
问题:

  1. 有没有办法避免这种情况??
  2. 我应该为此担心吗?

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

    如果您使用的是 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 目录,以便它可以直接从那里提供页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-30
      • 2021-09-08
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2015-11-19
      • 2016-05-08
      • 2018-08-27
      相关资源
      最近更新 更多