2012-10-07 36 views
1

我現在有已安裝的Drupal網站,它有乾淨的網址,以便.htaccess文件包含以下內容:如何爲一個cms和另一個靜態頁面重寫一個mod?

RewriteRule^index.php [L] 

除了這個,我希望能夠發佈靜態的HTML頁面,並讓他們使用乾淨的網址也是如此。我想通過添加一個特定的關鍵字來區別它們與drupal頁面。內容,也許有像下面的東西(不知道這是否會工作) - 在哪裏我得到像www.domainname.com/nice-holiday網址,並將其翻譯爲 domainname.com/ftp/pages/nice-holiday.html

RewriteRule ^content/(.+)$ domainname.com/ftp/pages/$1.html [L] 

問題是第一條規則將嘗試針對所有請求執行。我曾嘗試在更一般的規則之前加入更具體的規則,但它仍然無效。 如何根據條件有兩個mod重寫規則?例如特定單詞的存在?更一般地說,任何人都有在一個網站上處理CMS和靜態頁面的經驗 - 或者是要求麻煩?

回答

0

這就是RewriteCond派上用場的地方。

# make sure no rewriting is done for requests without www 
RewriteCond %{HTTP_HOST} !^domainname\.com 
RewriteCond %{REQUEST_URI} !^/?content/ 
RewriteRule^index.php [L] 

# later on... 
# don't want this rule to apply for non-www requests either 
RewriteCond %{HTTP_HOST} !^domainname\.com 
RewriteRule ^/?content/(.+)$ http://domainname.com/ftp/pages/$1.html [L] 

我想這就是你要做的?如果你真的不關心www的事情,你可以完全消除%{HTTP_HOST}條件。只要您在drupal重寫中保留%{REQUEST_URI}條件,這兩個規則仍然可以共存,因此明確重寫的drupal不適用於以/ content /前綴開頭的URI。

相關問題