尝试使用 .htaccess 从 URL 中删除 /web 时找不到 yii2 404 页面

问题描述 投票:0回答:1

我正在尝试使用 .htaccess 文件从 Yii2 基本模板中的 URL 中删除此 /web 。我已经找到了解决方案,但出现了问题! 所以我之前找到的解决方案是:

  1. 放入root/web文件夹.htaccess:
    RewriteEngine On RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule . index.php
  1. 放入根文件夹.htaccess:
    Options +FollowSymLinks
    IndexIgnore */*
    RewriteEngine on
    
    RewriteCond %{REQUEST_URI} !^/(web)
    RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
    RewriteRule ^css/(.*)$ web/css/$1 [L]
    RewriteRule ^js/(.*)$ web/js/$1 [L]
    RewriteRule ^images/(.*)$ web/images/$1 [L]
    RewriteRule (.*) /web/$1
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /web/index.php
  1. config/web.php中的request部分添加'baseUrl'=> ''

执行步骤2和3后出现问题。浏览器告诉:

未找到 在此服务器上找不到请求的 URL /web/index.php。 Apache/2.4.23 (Win64) PHP/5.6.25 服务器位于本地主机端口 80

当我在本地服务器 WAMP 上执行此操作时,所有这些都会发生。我尝试将这个项目放在免费托管上,一切似乎都正常。那么如何在本地服务器上解决这个问题呢?为什么会出现 404 错误?

.htaccess yii2 yii2-basic-app
1个回答
0
投票

尝试在根目录中替换.htaccess

RewriteRule (.*) /web/$1

RewriteRule ^(.*)$ /web/$1 [L,PT]
© www.soinside.com 2019 - 2024. All rights reserved.