2012-08-06 78 views
1

我有一個項目必須包含在項目中。 所以..項目A是建立在定製的框架之上的網站使用這個的.htaccess重寫規則:將兩個項目中的兩個.htaccess文件合併爲一個

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 

第二個B項目是建立在另一種定製的框架頂部,我應該使它看起來像第一個子文件夾。 所以我把項目B放在一個文件夾「子文件夾」中。項目B有它自己的.htaccess看起來像這樣:!

的RewriteCond%{} REQUEST_FILENAME -f

的RewriteCond%{} REQUEST_FILENAME -d

重寫規則^ $指數(*)。 ?.PHP請求=%{REQUEST_URI} &%{QUERY_STRING} [NE,L]

我想將它們合併成一個單一的文件.htacess告訴到Apache類似:

如果我們有一個參數/子文件夾重定向一切的子文件夾/ index.php的

其他一切都重定向到index.php

任何想法,我該怎麼辦呢?

+0

當我嘗試保留兩個.htaccess文件並將RewriteBase更改爲第二個RewriteBase /子文件夾時,我得到310(net :: ERR_TOO_MANY_REDIRECTS) – gotha 2012-08-06 08:55:11

回答

3

你應該做的是:

對於第一個項目,這htaccess文件是在文檔根

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L] 

然後在第二個項目,這htaccess文件是在subfolder目錄:

RewriteEngine On 
RewriteBase /subfolder/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?request=%{REQUEST_URI} [NE,L,QSA] 

如果由於某種原因,這不是爲你工作,我猜組合htaccess文件,一個駐留在文檔根目錄,會看像這樣:

RewriteEngine On 

# for 2nd project 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?subfolder/(.*)$ /subfolder/index.php?request=$1 [NE,L,QSA] 

# for 1st project 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?url=$1 [L] 

可能需要稍微調整一下。

+0

我試過但我在重寫規則中忘記了(。*)$第二個項目,這一切搞砸了。 感謝您的幫助! – gotha 2012-08-06 10:57:43

相關問題