2012-08-02 228 views
0

你好,我有以下頁面:虛擬目錄

1st site folder: www.site.com /www/www1/ 
2nd site folder: www2.site.com /www/www2/ 
Ajax Folder: /www/ajax/ 
CDN Folder: /www/cdn/ 

wwwwww2網站使用一些Ajax的東西,因爲我不希望創建自己的ajax文件夾中的每個站點,我想使用同一目錄下,我想要做的是:

我有我的wwwwww2網站,每一個都必須使用相同的AJAX的文件夾,我嘗試創建一個虛擬文件夾,連接到我的AJAX文件夾中每一個。

所以必須www.site.com/ajax/myfileajax.php?id=1 也爲www2.site.com/ajax/myfileajax.php?id=2

林用的.htaccess嘗試,但沒有運氣只是一個404錯誤

RewriteRule /inc/^(.*) ../ajax/$1 [L] 

我不想重新編寫我的X域阿賈克斯所有的JavaScript這就是爲什麼我想要這樣做。 我的託管服務提供商無法編輯httpd.conf,所以這是我使用.htaccess的唯一機會。 我也試過alias,但不起作用。

回答

0

嘗試把這個地方在htaccess文件合適你的文檔根(我假設是/ WWW /):

RewriteEngine On 

# for www.site.com 
RewriteCond %{HTTP_HOST} www.site.com [NC] 

# check that the request needs to be routed (ajax/cdn don't need to be routed) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# check that we get routed to an existing file or directory 
RewriteCond %{DOCUMENT_ROOT}/www1%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/www1%{REQUEST_URI} -d 

# Do the route to /www1/ 
RewriteRule !^/?www1 /www1%{REQUEST_URI} [L] 


# for www2.site.com 
RewriteCond %{HTTP_HOST} www2.site.com [NC] 

# check that the request needs to be routed (ajax/cdn don't need to be routed) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# check that we get routed to an existing file or directory 
RewriteCond %{DOCUMENT_ROOT}/www2%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/www2%{REQUEST_URI} -d 

# Do the route to /www2/ 
RewriteRule !^/?www2 /www2%{REQUEST_URI} [L] 

第一次檢查是確定主機名的請求是對。第二個檢查是請求不是針對現有資源。如果請求是/ajax/myfileajax.php,那麼如果該文件存在於/ ajax /目錄中,則不需要執行任何路由。第三個檢查是確定我們是否路由,我們將URI指向現有資源。這一點只是讓404錯誤報告請求的URI而不是前面附加/www1/的URI。換句話說,除非有什麼東西,否則不要路由,否則就像正常情況一樣。

+0

我的document_root是/ www/www1 /和/ www/www2/ – 2012-08-02 21:19:45

+0

@EnriqueBenitez然後,您不能使用htaccess寫入文檔根目錄之外的URI。您可以將'ajax'和'cdn'符號鏈接到www1和www2,並確保'FollowSymLinks'選項處於打開狀態 – 2012-08-02 21:42:27