2012-01-29 35 views
0

我需要從瀏覽器中同一目錄中的兩個目錄訪問文件。Apache Rewrite:顯示來自同一目錄中兩個目錄的文件

視覺上的目錄可能看起來像這樣...

/public_html/www.example.com/xml/

/XML/

/public_html/.htaccess

重要說明:此設置支持多個域。

/public_html/www.example1.com/

/public_html/www.example2.com/

的XML文件要求在http://www.example.com/ xml/位於/public_html/www.example.com/xml/,如果該文件不存在於該服務器路徑,則需要檢查/xml/服務器路徑。

顯然從我們將訪問/的public_html/XML/路徑(例如www.example.com/xml/)讓我們說,我們可以看到與Apache生成鏈接到所有目錄索引瀏覽器XML文件。我希望能夠從example.com/xml/訪問/xml/目錄中的文件。

這兩個目錄中還存在具有確切名稱的文件的問題。我更喜歡/public_html/xml/目錄優先,因此如果用戶請求www.example.com/xml/1.xml,則會顯示副本/public_html/xml/1.xml如果可能的話,/xml/1.xml。請記住,我想MERGE訪問兩個目錄中的所有文件到一個目錄,我不想使任何一個目錄中的文件都不可訪問,以使其他目錄中的文件可訪問。

這必須使用位於/.htaccess下方的.htaccess文件完成。

我很樂意澄清任何事情,以及對投票和接受工作答案。

+1

+1的問題。這是一個非常有效的場景,所以我想知道爲什麼你得到了downvote。 – davidethell 2012-02-27 01:31:07

回答

1

喜歡的東西的/的public_html/XML/

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*)$ - [L] 

RewriteCond /PhysicalPath2AnotherFolder/%{REQUEST_URI} -f [OR] 
RewriteCond /PhysicalPath2AnotherFolder/%{REQUEST_URI} -d 
RewriteRule ^(.*)$ /WebPath2AnotherFolder/$1 [L] 

說的.htaccess PS:PhysicalPath2AnotherFolder應該有,但不包括在它的原始目錄的webpath。或者,當然,可以添加額外的RewriteCond,以僅從REQUEST_URI獲取文件名。在這種情況下,它會是這樣的(我沒有測試它:))..

RewriteCond %{REQUEST_URI} ^/.*?([^\/]+)$ 
RewriteCond /PhysicalPath2AnotherFolder/%1 -f [OR] 
RewriteCond /PhysicalPath2AnotherFolder/%1 -d 
RewriteRule ^(.*)$ /WebPath2AnotherFolder/$1 [L] 
+0

將看看它,並嘗試一下,讓你知道結果是什麼;感謝張貼! – John 2012-01-29 09:00:09

+0

@John對不起,我不會在凌晨4點嘗試任何東西)我要睡覺,但如果8個小時內沒有人糾正我,我會自己嘗試:)順便說一句,你應該明白它會不給這兩個文件夾的索引。 PHP腳本可能會同時產生一個列表。 – Cheery 2012-01-29 09:03:06

+0

我沒有要求你嘗試任何事情,我只是承認你的帖子,並且在我完成了一些RL的工作後,我會嘗試一下我現在要做的事情。 – John 2012-01-29 09:42:22

相關問題