Yii2.0 解決“the requested URL was not found on this server”問題


在你下了 Yii 框架,配置完路由 urlManager 后,路由訪問頁面會報錯“the requested URL was not found on this server”,url類似於這種“https://www.cnblogs.com/site/index”。

 'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,//不顯示.php
            'suffix' => '.html',//后綴
            'rules' => [
                "<controller:\w+>/<action:\w+>/<id:\d+>"=>"<controller>/<action>",
                "<controller:\w+>/<action:\w+>"=>"<controller>/<action>"
            ],
        ],

 

解決方法:

 

方法一:刪除項目下的 runtime 文件夾,然后強刷頁面。

 

方法二:在項目文件夾下面添加 “.htaccess”文件,內容如下:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

 

或者這個也可以(兩個選一個)

 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

 

添加以后再刷新頁面,就會發現可以正常訪問了,完美解決。

 

image.png

 

什么是 .htaccess?

 

.htaccess是一個純文本文件,它里面存放着Apache服務器配置相關的指令。

當我們使用apache部署一個網站代碼准備部署到網上的時候,我們手中的apache的httpd.conf大家肯定都知道。這是apache的配置文件,然而我們大多數的網站都是基於雲服務器來部署的,還有就是團隊協作開發的時候,我們很難直接修改公共的httpd.conf,這時 .htaccess就是httpd.conf的衍生品,它起着和httpd.conf相同的作用。

 


.htaccess 的作用?

 

  • URL重寫、自定義錯誤頁面

  • MIME類型配置

  • 訪問權限控制等

  • 主要體現在偽靜態的應用

  • 圖片防盜鏈

  • 自定義404錯誤頁面

  • 阻止/允許特定IP/IP段

  • 目錄瀏覽與主頁

  • 禁止訪問指定文件類型

  • 文件密碼保護


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM