Q
當文件不存在
0
A
回答
1
在執行重寫之前,您可能想要檢查重寫的內容是否存在,以避免出現循環(注意測試模式與重寫的內容相匹配)。一種可能的方法,這是做到以下幾點:
# Check that the file isn't a directory
RewriteCond %{REQUEST_FILENAME} !-d
# ...nor is it a file
RewriteCond %{REQUEST_FILENAME} !-f
# ...but the result of the rewrite will be
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+) $1.php
這也有顯示在其中生成404例原始URL的(未成年人)的利益,只要你使用已有Apache的錯誤消息。如果您要重寫爲不存在的PHP文件,服務器會說找不到/something.php,而不是/something/,但由於當目標文件沒有執行重寫時存在,你得到/something/。
如果仍然出現500錯誤,那麼.htaccess文件中可能存在另一個衝突規則。您還應該檢查Apache的錯誤日誌,以獲取有關錯誤的更多詳細信息,儘管在這種情況下我懷疑它是超出內部重定向限制的消息。
1
也許處理不存在的文件和/或目錄的情況下可能會幫助
RewriteCond %{REQUEST_URI} -d
RewriteCond %{REQUEST_URI} -f
嘗試處理這些案件,以避免錯誤
相關問題
- 1. 當文件存在時GetLastWriteTime不準確
- 2. 當GitIgnore不存在Git忽略文件
- 3. FileNotFoundException當文件存在時
- 4. 耙當文件已存在
- 5. 當文件存在時,java.lang.NoClassDefFoundError
- 6. 當文件存在時PHP?
- 7. 文件已存在當移動文件
- 8. liquibase:當文件存在for changelog.xml時,接收「文件不存在」異常
- 9. 當文件明顯存在時,找不到Python文件錯誤
- 10. 不斷查找文件,當文件存在時,運行命令
- 11. 文件:: open()的恐慌,當文件不存在
- 12. phpseclib NET_SFTP_STATUS_NO_SUCH_FILE:當文件存在時找不到文件
- 13. 當grunt中不存在文件/文件夾時創建文件/文件夾
- 14. 當寫入文件在Java文件不能保存在文件夾
- 15. 在VB中反序列化不失敗當文件不存在
- 16. 當讀大文件時內存不足
- 17. 獲取( '文件' 不存在於當前上下文存在名稱)消息
- 18. ASP.NET MVC當前上下文中不存在名稱'文件'
- 19. 「」在當前上下文中不存在?
- 20. 當文件不存在時SSIS腳本任務不分支
- 21. File_get_contents當文件不存在時不計算爲false
- 22. 當文件不存在時git cherry-pick不顯示衝突?
- 23. 控件在當前上下文中不存在
- 24. HTML控件在當前上下文中不存在asp.net
- 25. Websphere manageprofile文件在我當前的安裝中不存在
- 26. 當.class文件存在時,Java NoClassDefFoundError
- 27. 當文件存在時fopen失敗
- 28. XNA ContentLoadException當文件是明顯存在
- 29. 當文件存在時,File.Exists返回false
- 30. 當文件存在時拋出FileNotFoundException