2012-04-12 104 views
0

因此,我想組織我的項目以更好地開發。我選擇了用這種方式來組織文件夾&文件:當Apache2中有別名時,RewriteRule失敗

www 
    projects 
     project1 
      web 
      design_tests 
     project2 
      web 
      design_tests 
... 

每個項目的網站將走「網絡」文件夾中。我也想訪問Web瀏覽器,而無需把「網絡」文件夾名稱,所以:

http://localhost/projects/project1 
will access the physical files of: 
/www/projects/project1/web 

我完成,加入下一行到我的/ etc/apache2的/網站可用/默認文件:

AliasMatch ^/projects/([^/]*)(/.*)? /www/projects/$1/web$2 

完美地工作。問題是,在一些網站中,我有一個帶一些RewriteRule規則的.htaccess文件。一個例子:

RewriteEngine On 
RewriteRule styles\.css styles_20120107.css 

他們曾經沒有別名和正常工作。現在他們沒有。它重定向到URL /project1/web/styles_20120107.css,當然,由於Alias,瀏覽器無法獲取它。我真的不知道如何解決它。你能給我一些幫助嗎?如果可能的話,在文件/ etc/apache2/sites-available/default中進行修改,而不是在.htaccess上進行修改,因爲我希望網站是跨服務器。

感謝提前:)

+0

爲這樣的重寫規則添加'[PT]'標誌:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_pt – LazyOne 2012-04-12 21:57:22

+0

已經嘗試過了,沒有結果。如果它應該以這種方式工作,爲什麼它不是? – elxordi 2012-04-12 22:25:14

+0

我給你的鏈接有解釋。 – LazyOne 2012-04-12 22:48:53

回答

1

如果添加[PT]標誌不爲你工作......爲什麼不重寫規則替換別名的事情來實現相同的 - 在這種情況下,你應該完全避免這個問題。

+0

再次,非常感謝您的幫助:) – elxordi 2012-04-13 15:26:08