2011-01-13 48 views
1

我目前正在開發一個基於Drupal網站,但將保持原有系統和許多靜態網頁/文件夾活着。這將是巨大的,如果我能保持舊的廢墟中較新的網站單獨的文件夾。這意味着我已經合併在運行這兩個文件夾。我認爲這個文件夾結構會很棒。合併兩個文件夾與國防部重寫在.htaccess

/htdocs/legacy (symlink to old web root) 
/htdocs/index.php 
/htdocs/.htaccess 
/htdocs/other drupal files and folders 
/htdocs/... 

這意味着,如果即mydomain.com/xyz.php被訪問的服務器應該嘗試爲它服務按以下順序。

  1. 如果文件或文件夾/ htdocs中/服務器這
  2. 如果文件或文件夾/傳統/服務這一點,但不重寫瀏覽器的地址欄中。
  3. 其他重寫把它作爲查詢字符串到

我想出了以下重寫規則。然而,哪些不起作用。我可以在傳統或通過Drupal的文件服務解決方案。

# 1. server from .htaccess folder 

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

# 2. serve from legacy 

RewriteCond /full-path-to-legacy-folder/%{REQUEST_URI} -f [OR] 
RewriteCond /full-path-to-legacy-folder/%{REQUEST_URI} -d 
RewriteRule ^(.*)$ /legacy/$1 [NC,L] 

# 3. else 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

有沒有人對你有什麼建議?

非常感謝!

+1

看上去只有正確的 - 究竟是什麼不起作用? – 2011-01-13 10:57:57

回答

0

既然你只是重寫URL,並且有需要與文件(如mod_php)進行其他操作,嘗試改變你的[L]選項[PT],使常規處理,繼續在該請求。