[英]mod_rewrite redirect loop
這是我的目錄結構:
http://files.example.com/files/
所有文件都位於files /目錄中
我希望URL是http://files.example.com/somefile.txt,即使somefile.txt位於files /目錄中。
這是我的.htaccess文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ files/$1
如果有人請求http://files.example.com/somefile.txt並且somefile.txt在files /目錄中,則一切正常。
但是,如果somefile.txt不存在,則會導致內部服務器錯誤(500),重定向過多。
如果指定的文件不存在,如何將用戶發送到404頁面?
例如:轉到http://files.example.com/a-file-that-does-not-exist.txt將重定向到自定義404頁面,而不是重定向過多?
這可行!
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/files/%{REQUEST_URI} -f
RewriteRule ^(.*)$ files/$1
嘗試:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/files/
RewriteRule ^(.*)$ /files/$1 [L]
如果/ files /中不存在該文件,則讓重寫處理404,這意味着您不需要!-d和!-f檢查。
關於什么
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond files/%{REQUEST_FILENAME} -f
RewriteRule !^files/(.*)$ files/$1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.