【问题标题】:Local Laravel error 404 with duplicated URL redirection带有重复 URL 重定向的本地 Laravel 错误 404
【发布时间】:2020-11-25 12:32:19
【问题描述】:

目前正在尝试在我的本地 PC 上设置 Laravel 项目。我将主机名 127.0.0.1 localhost-smt 添加到 Windows 主机文件并编辑了我的 Apache httpd- vhost.conf:

<VirtualHost *:80>
     ServerName localhost
     DocumentRoot "C:/xampp/htdocs/project1"
     <Directory "C:/xampp/htdocs/project1/">
         DirectoryIndex index.php
     </Directory>
 </VirtualHost>

 
<VirtualHost *:80>  
    ServerName localhost-smt  
    DocumentRoot "C:/xampp/htdocs/project1/smt/public"  
    ErrorLog "logs/testseite-error.log"  
    CustomLog "logs/testseite-access.log" common  
    <Directory "C:/xampp/htdocs/project1/smt/">  
    AllowOverride All  
    Allow from All  
    </Directory>  
</VirtualHost>

我的 Apache httpd.conf

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">

每次我连接到 localhost-smt/home 时,我都会收到一个双重 URL,例如 http://localhost-smt/127.0.0.1/home。此外,如果我从 localhost 导航到公用文件夹并添加 /home,我会收到以下 URL http://localhost/smt/public/ 127.0.0.1/smt/public/home.

我尝试了很多不同的解决方案,但到目前为止都没有奏效。如果有人能帮我解开这个谜题,我将不胜感激。

【问题讨论】:

    标签: php laravel apache error-handling


    【解决方案1】:

    我不确定如何使用 .conf 文件执行此操作,但我在使用 Xampp 时实现此目的的方式如下,这样做显然意味着撤消您对 Xampp 的默认行为所做的任何事情与您编辑的 .conf 文件有关。

    1. 将名称解析添加到您的主机文件中

    127.0.0.1 dev.projectName

    1. 将以下 .htaccess 文件添加到项目目录的根目录(通常为“C:/xampp/htdocs”)
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^dev.projectName$
    RewriteRule .? - [S=1]
    RewriteRule ^(.*)$ projectName/$1 [L]
    
    1. 将以下 .htaccess 文件添加到项目的根目录(通常为“C:/xampp/htdocs/projectName”)
    RewriteEngine On
    RewriteBase /dev.projectName/
    
    RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
    RewriteRule ^ %1 [L,NE,R=302]
    
    RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
    
    1. 将以下 .htaccess 文件添加到您的公共目录(通常为“C:/xampp/htdocs/projectName/public”)
    RewriteEngine On
    RewriteBase /dev.projectName/public/
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [QSA,L]
    
    1. 可以通过http:\\dev.projectName查看

    我知道这是一种冗长的方法,但这是我当时能找到的唯一解决方案,并且对我有用。

    每次创建新项目时都必须这样做确实会让人头疼,这也是我改用 docker 的原因之一,无论如何,在我看来这是一个更好的解决方案,

    【讨论】:

    • 我添加了所有 .htaccess 文件,但收到内部服务器错误。我将尝试重置 XAMPP 并检查它是否有效。谢谢你的回答,永远
    猜你喜欢
    • 1970-01-01
    • 2018-05-09
    • 2017-03-27
    • 2018-10-14
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 2016-03-08
    相关资源
    最近更新 更多