2014-04-01 102 views
1

我的目錄設置如下:的.htaccess重寫分目錄 - 維護頁

根目錄中what.ever.ip在/ var/WWW/

用戶的網站是what.ever.ip /用戶名

用戶根FTP是/無功/網絡/用戶名/ upload_files_here, 其轉換爲what.ever.ip /用戶名/ upload_files_here

所以,如果用戶上傳的Foo的index.html,他將要訪問what.ever.ip /美孚/ upload_files_here/index.html的

文件我想使用Apache的.htaccess改寫這個(沒有重定向又名顯示它)顯示爲what.ever.ip /美孚/ index.html的

我曾嘗試多種解決方案,而找到一個解決我的問題。

所以我的問題是我怎麼改寫 「what.ever.ip /用戶名/ upload_files_here/index.html的」 到 「what.ever.ip /用戶名/ index.html的沒有表現出它

PS。 what.ever.ip是未知,可能是本地地址,本地主機遠程地址。所以我寧願可能的通配符,而不是硬編碼在「what.ever.ip」

謝謝,亞歷克斯。

回答

2

將這個規則在/var/www/.htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/((?!upload_files_here/).*)$ /$1/upload_files_here/$2 [L,NC,QSA] 
+0

只要我給url提供一個文件名就可以了,也就是說。 example.com/user/index.html或example.com/user/file.exe 但是,當我僅提供url example.com/user時,它將轉到該目錄而不是upload_files_here目錄。任何修復? – Alex

+0

查看更新並確保'example.com/user /'中存在斜槓 – anubhava

+0

只是很困難,它也會重寫我的ErrorDocuments(絕對路徑),而不是/error/404.html它表示/ error/upload_files_here,有沒有我們可以申請的RewriteCond,或者我可以只使用其中的一種嗎? – Alex

0

以下:

RewriteEngine On 
RewriteRule ^(.*)/upload_files_here/(.*)$ /$1/$2 [L] 

應該改變:

what.ever.ip/username/upload_files_here/index.htmlwhat.ever.ip/username/index.html同時顯示仍然what.ever.ip/username/upload_files_here/index.html在URL欄。