2015-01-06 38 views
2

我有一個網站,我們只希望https在結算部分工作,因爲這是目前唯一設置爲使用它的部分,所以我們要確保如果有人在網站的任何其他部分上訪問https,那麼他們將被重定向到http等效。將網站https的大部分重定向到除了一個部分之外的http

目前我們只是做這一個頁面,這裏是從網站的根目錄下的當前.htaccess文件:

RewriteEngine On 

RewriteCond %{HTTPS} =on 
RewriteRule ^auction_search.php$ http://%{HTTP_HOST}/auction_search.php [R=301,L] 

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ 
RewriteRule . %1/%2 [R=301,L] 

RewriteRule ^(.*),(.*)$ $2.php?rewrite_params=$1&page_url=$2 

RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) 
RewriteRule ^(.*)$ index.php [F,L] 

RewriteRule ^stores/([0-9a-z.-]+)/?$ shop.php?shop_id=$1 [L,QSA,NC] 
RewriteRule ^stores/([0-9a-z.-]+)/ajax_files/watch_item\.php$ ajax_files/watch_item.php [L,QSA,NC] 
RewriteRule ^stores/([0-9a-z.-]+)/ajax_files/save_field\.php$ ajax_files/save_field.php [L,QSA,NC] 
RewriteRule ^stores/([0-9a-z.-]+)/images/form-cb-icons\.png$ images/form-cb-icons.png [L,NC] 

RewriteRule ^group-break/([0-9]+)/[0-9a-z.-]+/?$ group_break.php?cb_id=$1 [L,NC] 
RewriteRule ^group-breaks/([a-z]+)-[a-z-]+/?$ group_breaks.php?tab=$1 [L,NC] 

正如你可以在頂部附近看到有這樣的:

RewriteCond %{HTTPS} =on 
RewriteRule ^auction_search.php$ http://%{HTTP_HOST}/auction_search.php [R=301,L] 

所以我們想改變這個,所以我們要把所有的https請求重定向到相應的http頁APART從任何內部和包括目錄billing它運行在主要的根即ie;它的位置是:www.mysite.com/billing/

編輯:它實際上應該允許查看以下擴展名以上https太:.PNG,.JPG,.JPEG,.GIF的.css,.js文件

所以纔想知道我們如何改變目前的規則,我們必須做我們想做的事情?

回答

2

您可以在同一個地方使用此規則的權利:

RewriteCond %{HTTPS} =on 
RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|ico|js|css)$ [NC] 
RewriteRule !^billing(/.*)?$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC,NE] 
+0

所以我只是替換這一個接一個的規則? – Brett

+0

不,應該將「auction_search」視爲與帳單區域外的任何其他頁面相同。 – Brett

+1

好吧,非常感謝! – Brett

相關問題