Laravel 4 从 URL 中删除 public

2022-08-30 22:32:39

所以,我在Windows上运行xampp。我目前正在尝试熟悉laravel框架。现在,当这一点被指出时。我怎样才能直接在根目录中访问我的laravel应用程序/网站?

  • 我现在做的是:localhost/laravel/public/about(查看关于页面)
  • 我想做的是:localhost/laravel/about

有什么好的解决方案吗?我需要在laravel的根文件夹上添加一个.htacess文件吗?(不是公共的)。

有什么建议吗?


答案 1

最简单的方法是在您的Laravel根目录中创建包含以下内容的文件:.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

它应该很容易重定向。

参考资料: https://coderwall.com/p/erbaig/laravel-s-htaccess-to-remove-public-from-url


答案 2

我是这样做的。

  1. 编辑您的 Windows 主机文件 - C:\Windows\System32\drivers\etc\hosts
  2. 编辑 Apache vhosts 文件 - Drive-Letter:\xampp\apache\conf\extra\httpd-vhosts.conf
  3. 将 htaccess 文件添加到 laravel/public folder(如果尚未存在)
  4. 重新启动 Xampp apache server

由于用户帐户控制,Windows 在尝试编辑主机文件时可能是真正的 PITA。由于我从事各种小型业余爱好项目,因此我必须一直编辑此文件,因此这就是我所做的。

  • 安装 PSPad。它的加载速度非常快,您可以为文件添加书签以便于加载/编辑。如果您加载我上面提到的两个文件并将工作区另存为新项目,则Sublime Text也可以很好地工作。
  • 右键单击PSPad(或其他编辑器)程序快捷方式,然后选择“以管理员身份运行”。除非执行此操作,否则无法保存对 Hosts 文件的更改。
  • 在编辑器中打开 Windows 主机文件。此文件没有文件扩展名,因此您必须在“文件打开”对话框中选择“所有文件”才能看到该文件。
  • 在文件底部,添加以下内容:

    127.0.0.1  laravel.dev
    

    这将告诉 Windows 将 Web 浏览器指向 localhost,每当您在浏览器的地址栏中输入 laravel.dev。

  • 保存文件。
  • 打开 xampp Apache httpd-vhosts.conf 文件。
  • 在文件底部,添加以下内容:(我假设xampp安装在D:驱动器的根目录下)

    <VirtualHost *:80>
      ServerName laravel.dev
      DocumentRoot "D:/xampp/htdocs/laravel/public"
      <Directory "D:/xampp/htdocs/laravel/public">
      </Directory>
    </VirtualHost>
    
  • 将 htaccess 文件添加到您的 laravel/public 文件夹(如果尚未添加)。我认为L4附带的默认htaccess文件如下所示:

    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    
  • 重新启动 xampp apache 服务器。
  • 打开 Web 浏览器并在地址栏中键入 -http://laravel.dev
  • 这将带您进入“公共”文件夹中的索引.php文件。
  • 要转到“关于”页面,我认为地址将是http://laravel.dev/about

推荐