簡體   English   中英

htaccess文件擴展在重寫中導致404

[英]Htaccess file extension in rewrite causing 404

我的一個重寫規則有問題。 我正在開發要通過腳本控制文件訪問的應用程序。 我的計划是簡單地將帶有參數的重寫規則傳遞給我的腳本,以檢索適當的文件。

但是,嘗試將帶有擴展名的文件名作為重寫規則的一部分時遇到一些問題。 也許有人可以指出我在做什么錯。

我的重寫規則:

RewriteEngine On
RewriteBase /
RewriteRule ^files/(.+)/(.*)$ /index.php/files/$1/$2 [NC,L]

什么有效: http://localhost/files/12345/index

是什么導致引發404錯誤: http://localhost/files/12345/index.css

我已經為此進行了一段時間的爭斗,它的行為幾乎就像是試圖加載css文件,沒有找到它,並且從不運行rewwite規則。 我正在為我的主機環境使用IntelliJ的PHP內置Web服務器,不確定是否與此有關。

更新:

如果我直接轉到http://localhost/index.php/files/12345/index.css ,該頁面將按預期工作,則不會返回404。此規則是.htaccess文件中的唯一規則。

如果我回顯$_SERVER["PATH_INFO"]; 從index.php我得到/files/12345/index.css作為值

您需要跳過此重寫中的現有文件和目錄:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(files/[^/]+/.*)$ /index.php/$1 [NC,L]

發現問題僅是PHP內置Web服務器不像.apache那樣支持.htaccess。 把它扔到一個功能強大的apache服務器上,一切都像個魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM