2011-02-25 59 views
1

我很慚愧不得不問這個問題,因爲這裏有很多問題和答案,但是我已經搜索並嘗試了幾周而沒有獲得積極的結果。mod_rewrite subdomain + dir

我有文件上傳頁面的網址: files.example.com

當用戶上傳放置在一個子目錄文件的: files.example.com/files/file.jpg 所以當用戶要查看文件時,他必須訪問該網址。

但我要刪除的目錄文件/ 因此,用戶可以查看這個網址的文件: files.example.com/file.jpg

我已經把.htaccess文件中: 文件.example.com/.htaccess

嘗試了我能找到的一切。例:

RewriteEngine On 
RewriteBase/
RewriteRule ^files/?(.*)$ /$1 

mod_rewrite的子域名+目錄

回答

1

你的規則是圓的擰方式。嘗試:

RewriteEngine On 
RewriteBase/
RewriteRule ^([^/]*\.jpg)$ files/$1 [L] 
+0

我得到一個內部服務器錯誤(500)與該代碼。如果我刪除「jpg」^(。*)$/files/$ 1 [L]我得到404 – Patrik 2011-02-25 12:11:34

+0

@Patrik:在測試中,我發現這導致了遞歸重寫(因此500錯誤)。我已經更新了正則表達式以防止這種情況。請嘗試上面的新版本。 – qbert220 2011-02-25 13:12:04

+0

太棒了!那麼[^ /] *和(。*)之間的區別是什麼?不匹配/?但我仍然有一個小問題,我希望用戶能夠上傳任何文件。所以,如果我刪除JPG,我將被「定向」到文件目錄,如果我嘗試訪問index.php。那麼我可以說「如果文件類型不是.php,只能重定向」? – Patrik 2011-02-25 13:39:09