簡體   English   中英

mod_rewrite重定向循環

[英]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.

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