在 apache 中重寫規則不生效的問題 [No input file specified.] 解決

kuibatian發表於2019-12-13

首先請確保你的vhost配置正確,因為這篇文章不是解決vhost配置的問題的

我的vhost 大致如下:

在apache中重寫規則不生效的問題[No input file specified.]解決

找到專案根目錄下的 public 目錄找到.htaccess檔案開啟,找到下邊這句

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
問題就出在這兒。修改為以下(仔細看一遍,是有區別的哦)

RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
記得重啟apache


<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # 重定向 pc 的資源目錄路徑
    RewriteCond %{HTTP_HOST} ^www\.666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ pc/$1 

    # 重定向 pc 的入口檔案
    RewriteCond %{HTTP_HOST} ^www\.6666test\.com$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ pc.php [L]

    # 重定向 pc 帶引數的處理
    RewriteCond %{HTTP_HOST} ^www\.6666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ pc.php?/$1 [L]

    # 重定向 mobile 的資源目錄路徑
    RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ m/$1

    # 重定向 mobile 的入口檔案
    RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ mobile.php [L]

    # 重定向 mobile 帶引數的處理
    RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ mobile.php?/$1

</IfModule>

請同樣加上一個 ?

相關文章