2014-09-29 98 views
1

這似乎很簡單,但mod_rewrite上的文檔和搜索結果有點欠缺。爲了節省時間,有人可以向我解釋指導我的流量的最佳方式嗎?我想要https://servername.com/show/checkout。如果網址是其他任何內容,我希望它去到http://servername.com/show/whatever.htaccess:一個目錄轉到https,其他所有轉到http

我已啓用mod_rewrite。我可以將所有流量發送到https,但我沒有成功過濾/顯示/結帳流量。這不起作用,因爲在某些瀏覽器中存在導致安全警告的一些不安全的圖像/腳本。

謝謝!

發送所有的流量到https當前的.htaccess:

Order allow,deny 
Allow from all 
Deny from 65.208.151. 

Options -Indexes 

AddHandler fastcgi-script .fcgi 

AddDefaultCharset UTF-8 
AddDefaultCharset ISO-8859-1 

DirectoryIndex index.cgi 

RewriteEngine on 

RewriteRule ^/(.*)$ http://myserver.com/$1 [R,L] 

RewriteRule ^show/product/(.*)$ ?content=product;title=$1 [QSA,L] 
RewriteRule ^show/(.*)/(.*)$ ?content=$1;nth=$2 [QSA,L] 
RewriteRule ^show/(.*)$ ?content=$1 [QSA,L] 
RewriteRule ^place/order$ ?email=order [QSA,L] 

RewriteRule .htm$/

回答

1

這條規則:

RewriteRule ^/(.*)$ http://myserver.com/$1 [R,L] 

沒有做任何事情,因爲URI的用來匹配上將不會以/開頭。不僅如此,這個規則只是一個重定向循環。

刪除,然後嘗試在此:

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_REFERER} !show/checkout 
RewriteCond $1 !^show/checkout 
RewriteRule ^(.*)$ http://servname.com/$1 [L] 

RewriteCond %{HTTPS} off 
RewriteCond $1 ^show/checkout 
RewriteRule ^(.*)$ https://servname.com/$1 [L] 
+0

這個工作,並教我什麼,我想了解有關如何mod_rewrite的作品。 – BMcNamara 2014-09-29 23:12:11

相關問題