2012-10-05 134 views
1

網站根目錄包含三個目錄說a,b,c都扮演根爲不同的域獲得在多主機環境乾淨網址參數

我在目錄b創建一個.htaccess並添加下面的規則給它

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^([^/]*)/?([^/]*)/$ /b/sample-page?bbi=$1&bbl=$2 [L] 

代替最後一行的上面,我也嘗試過

RewriteRule ^b/([^/]*)/([^/]*)$ /b/sample-page?bbi=$1&bbl=$2 [QSA,L] 

使用上述規則

http://testsite.com/b/pageone.php被成功改寫爲

http://testsite.com/b/pageone 

http://testsite.com/b/sample-page.php?bbi=value1&bbl=value2

改寫爲http://testsite.com/b/sample-page?bbi=value1&bbl=value2代替

http://testsite.com/b/sample-page/value1/value2

http://testsite.com/sample-page/value1/value2 

回答

1

您需要添加一個L旗到你的其他規則:

RewriteRule ^(.*)$ $1.php [L] 

要處理的其他情況,則需要前一個添加規則

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/b/([^/]+)/([^/]+)/([^/]+) 
RewriteCond %{DOCUMENT_ROOT}/b/%1.php -f 
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+) $1.php?bbi=$2&bbl=$3 [L] 

這應該使它所以當你去http://testsite.com/b/sample-page/value1/value2,你得到服務的在/b/sample-page.php?bbi=value1&bbl=value2

+0

我試圖按照您的回覆,但不知何故無法得到它的工作.. –

+0

@RishiKalia對不起,測試的內容它在我自己的Apache安裝,需要2'/ b'在最後2個條件 –

+0

這將是有益的,如果你可以來聊天.. –