目前正在尝试在本地 PC 上设置 Laravel 项目。我添加了主机名 127.0.0.1 本地主机-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.confDocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">
每次我连接到 localhost-smt/home 时,我都会收到一个双 URL,例如 http://localhost-smt/127.0.0.1/home .如果我从 localhost 导航到公用文件夹并添加 /首页 我收到以下 URL http://localhost/smt/public/127.0.0.1/smt/public/home .我尝试了很多不同的解决方案,但到目前为止都没有奏效。如果有人能帮助我解决这个谜题,我将不胜感激。
最佳答案
我不知道如何使用 .conf 文件来做到这一点,但我在使用 Xampp 时用来实现这一点的方式如下,这样做显然意味着撤销你对 Xampp 与.conf 文件已编辑。
127.0.0.1 dev.projectName
RewriteEngine On RewriteCond %{HTTP_HOST} !^dev.projectName$ RewriteRule .? - [S=1] RewriteRule ^(.*)$ projectName/$1 [L]
RewriteEngine On RewriteBase /dev.projectName/ RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC] RewriteRule ^ %1 [L,NE,R=302] RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
RewriteEngine On RewriteBase /dev.projectName/public/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [QSA,L]
http:\\dev.projectName
查看我知道这是一种冗长的方法,但这是我当时能找到的唯一解决方案,它对我有用。
每次创建新项目时都必须这样做确实会变得很痛苦,这也是我切换到 docker 的原因之一,无论如何,我认为这是一个更好的解决方案,
关于php - 带有重复 URL 重定向的本地 Laravel 错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63263359/