2011-05-02 92 views
2

我只是試圖添加以下htaccess的規則來重定向所有HTTPS URL中(www和非WWW)(除/可溼性粉劑管理員文件夾,裏面的所有內容)到HTTP(非萬維網)。但是當它添加時,它開始給我重定向循環!知道爲什麼發生?的.htaccess:如何重定向HTTPS訪問http忽略一個文件夾

PS:我還使用w3Total緩存插件,並有大量的重寫規則

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteCond $1 !^wp-admin/ 
RewriteRule ^(.*)$ http://techhamlet.com/$1 [R=301,L] 

這裏是我的整個htaccess文件:

# STRONG HTACCESS PROTECTION</code> 
<Files ~ "^.*\.([Hh][Tt][Aa])"> 
order allow,deny 
deny from all 
satisfy all 
</Files> 

# REDIRECT to FEEDBURNER 
<IfModule mod_rewrite.c> 
RewriteCond %{REQUEST_URI} ^/feed/ [NC] 
RewriteCond %{HTTP_USER_AGENT} !(FeedBurner|FeedValidator) [NC] 
RewriteRule .* http://feeds.feedburner.com/techhamlet [L,R=302] 

RewriteCond %{REQUEST_URI} ^/comments/feed/ [NC] 
RewriteCond %{HTTP_USER_AGENT} !(FeedBurner|FeedValidator) [NC] 
RewriteRule .* http://feeds.feedburner.com/techhamlet/comments [L,R=302] 
</IfModule> 

<files wp-config.php> 
order allow,deny 
deny from all 
</files> 

# disable directory browsing 
Options All -Indexes 

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.*)$ [NC] 
RewriteCond %{THE_REQUEST} !^GET\s/+(wp-admin/|wp-login\.php) [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

# BEGIN W3TC Skip 404 error handling by WordPress for static files 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !(robots\.txt|sitemap\.xml(\.gz)?) 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC] 
    RewriteRule .* - [L] 
</IfModule> 
# END W3TC Skip 404 error handling by WordPress for static files 

# BEGIN W3TC Browser Cache 
<IfModule mod_mime.c> 
    AddType text/css .css 
    AddType application/x-javascript .js 
    AddType video/asf .asf .asx .wax .wmv .wmx 
    AddType video/avi .avi 
    AddType image/bmp .bmp 
    AddType application/java .class 
    AddType video/divx .divx 
    AddType application/msword .doc .docx 
    AddType application/x-msdownload .exe 
    AddType image/gif .gif 
    AddType application/x-gzip .gz .gzip 
    AddType image/x-icon .ico 
    AddType image/jpeg .jpg .jpeg .jpe 
    AddType application/vnd.ms-access .mdb 
    AddType audio/midi .mid .midi 
    AddType video/quicktime .mov .qt 
    AddType audio/mpeg .mp3 .m4a 
    AddType video/mp4 .mp4 .m4v 
    AddType video/mpeg .mpeg .mpg .mpe 
    AddType application/vnd.ms-project .mpp 
    AddType application/vnd.oasis.opendocument.database .odb 
    AddType application/vnd.oasis.opendocument.chart .odc 
    AddType application/vnd.oasis.opendocument.formula .odf 
    AddType application/vnd.oasis.opendocument.graphics .odg 
    AddType application/vnd.oasis.opendocument.presentation .odp 
    AddType application/vnd.oasis.opendocument.spreadsheet .ods 
    AddType application/vnd.oasis.opendocument.text .odt 
    AddType audio/ogg .ogg 
    AddType application/pdf .pdf 
    AddType image/png .png 
    AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx 
    AddType audio/x-realaudio .ra .ram 
    AddType application/x-shockwave-flash .swf 
    AddType application/x-tar .tar 
    AddType image/tiff .tif .tiff 
    AddType audio/wav .wav 
    AddType audio/wma .wma 
    AddType application/vnd.ms-write .wri 
    AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw 
    AddType application/zip .zip 
</IfModule> 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType text/css A31536000 
    ExpiresByType application/x-javascript A31536000 
    ExpiresByType video/asf A31536000 
    ExpiresByType video/avi A31536000 
    ExpiresByType image/bmp A31536000 
    ExpiresByType application/java A31536000 
    ExpiresByType video/divx A31536000 
    ExpiresByType application/msword A31536000 
    ExpiresByType application/x-msdownload A31536000 
    ExpiresByType image/gif A31536000 
    ExpiresByType application/x-gzip A31536000 
    ExpiresByType image/x-icon A31536000 
    ExpiresByType image/jpeg A31536000 
    ExpiresByType application/vnd.ms-access A31536000 
    ExpiresByType audio/midi A31536000 
    ExpiresByType video/quicktime A31536000 
    ExpiresByType audio/mpeg A31536000 
    ExpiresByType video/mp4 A31536000 
    ExpiresByType video/mpeg A31536000 
    ExpiresByType application/vnd.ms-project A31536000 
    ExpiresByType application/vnd.oasis.opendocument.database A31536000 
    ExpiresByType application/vnd.oasis.opendocument.chart A31536000 
    ExpiresByType application/vnd.oasis.opendocument.formula A31536000 
    ExpiresByType application/vnd.oasis.opendocument.graphics A31536000 
    ExpiresByType application/vnd.oasis.opendocument.presentation A31536000 
    ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000 
    ExpiresByType application/vnd.oasis.opendocument.text A31536000 
    ExpiresByType audio/ogg A31536000 
    ExpiresByType application/pdf A31536000 
    ExpiresByType image/png A31536000 
    ExpiresByType application/vnd.ms-powerpoint A31536000 
    ExpiresByType audio/x-realaudio A31536000 
    ExpiresByType application/x-shockwave-flash A31536000 
    ExpiresByType application/x-tar A31536000 
    ExpiresByType image/tiff A31536000 
    ExpiresByType audio/wav A31536000 
    ExpiresByType audio/wma A31536000 
    ExpiresByType application/vnd.ms-write A31536000 
    ExpiresByType application/vnd.ms-excel A31536000 
    ExpiresByType application/zip A31536000 
</IfModule> 
<IfModule mod_deflate.c> 
    <IfModule mod_setenvif.c> 
     BrowserMatch ^Mozilla/4 gzip-only-text/html 
     BrowserMatch ^Mozilla/4\.0[678] no-gzip 
     BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
     BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 
    </IfModule> 
    <IfModule mod_headers.c> 
     Header append Vary User-Agent env=!dont-vary 
    </IfModule> 
    AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon 
</IfModule> 
<FilesMatch "\.(css|js)$"> 
    FileETag None 
    <IfModule mod_headers.c> 
     Header set X-Powered-By "W3 Total Cache/0.9.1.3" 
    </IfModule> 
</FilesMatch> 
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$"> 
    FileETag None 
    <IfModule mod_headers.c> 
     Header set X-Powered-By "W3 Total Cache/0.9.1.3" 
    </IfModule> 
</FilesMatch> 
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$"> 
    FileETag None 
    <IfModule mod_headers.c> 
     Header set X-Powered-By "W3 Total Cache/0.9.1.3" 
    </IfModule> 
</FilesMatch> 
# END W3TC Browser Cache 

# BEGIN W3TC Page Cache 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_USER_AGENT} (2\.0\ mmp|240x320|alcatel|amoi|asus|au\-mic|audiovox|avantgo|benq|bird|blackberry|blazer|cdm|cellphone|danger|ddipocket|docomo|dopod|elaine/3\.0|ericsson|eudoraweb|fly|haier|hiptop|hp\.ipaq|htc|huawei|i\-mobile|iemobile|j\-phone|kddi|konka|kwc|kyocera/wx310k|lenovo|lg|lg/u990|lge\ vx|midp|midp\-2\.0|mmef20|mmp|mobilephone|mot\-v|motorola|netfront|newgen|newt|nintendo\ ds|nintendo\ wii|nitro|nokia|novarra|o2|openweb|opera\ mobi|opera\.mobi|palm|panasonic|pantech|pdxgw|pg|philips|phone|playstation\ portable|portalmmm|ppc|proxinet|psp|pt|qtek|sagem|samsung|sanyo|sch|sec|sendo|sgh|sharp|sharp\-tq\-gx10|small|smartphone|softbank|sonyericsson|sph|symbian|symbian\ os|symbianos|toshiba|treo|ts21i\-10|up\.browser|up\.link|uts|vertu|vodafone|wap|willcome|windows\ ce|windows\.ce|winwap|xda|zte) [NC] 
    RewriteRule .* - [E=W3TC_UA:_low] 
    RewriteCond %{HTTP_USER_AGENT} (acer\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|cupcake|docomo\ ht\-03a|dream|htc\ hero|htc\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|lg\-gw620|liquid\ build|maemo|mot\-mb200|mot\-mb300|nexus\ one|opera\ mini|samsung\-s8000|series60.*webkit|series60/5\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\-mobile\ mytouch\ 3g|t\-mobile\ opal|tattoo|webmate|webos) [NC] 
    RewriteRule .* - [E=W3TC_UA:_high] 
    RewriteCond %{HTTPS} =on 
    RewriteRule .* - [E=W3TC_SSL:_ssl] 
    RewriteCond %{SERVER_PORT} =443 
    RewriteRule .* - [E=W3TC_SSL:_ssl] 
    RewriteCond %{HTTP:Accept-Encoding} gzip 
    RewriteRule .* - [E=W3TC_ENC:.gzip] 
    RewriteCond %{REQUEST_METHOD} !=POST 
    RewriteCond %{QUERY_STRING} ="" 
    RewriteCond %{REQUEST_URI} \/$ 
    RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR] 
    RewriteCond %{REQUEST_URI} (wp\-comments\-popup\.php|wp\-links\-opml\.php|wp\-locations\.php) [NC] 
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|wordpress_\[a\-f0\-9\]\+|wordpress_logged_in) [NC] 
    RewriteCond "/home/techham/public_html/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f 
    RewriteRule (.*) "/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L] 
</IfModule> 
# END W3TC Page Cache 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 
+0

請您可以添加重定向循環的細節? 'wget的--spider的[url]'應該提供有用的輸出 – 2011-05-02 16:46:01

回答

1

試試這個規則.htaccess文件:

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.*)$ [NC] 
RewriteCond %{THE_REQUEST} !^GET\s/+(wp-admin/|wp-login\.php) [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
+0

對不起隊友..它沒有工作:(我加了整個htaccess文件在上述問題。請檢查:d – THpubs 2011-05-03 01:00:32

+0

我看着你的.htaccess爲那麼,如果你插入線:'的RewriteCond%{THE_REQUEST}^GET \ S /可溼性粉劑管理員/ [NC] '這行右後'的RewriteCond%{HTTP_HOST}^WWW \ $ [NC]!(*)。 '在你的.htaccess正如我在回答上面的表現會很好地工作。我已經測試你的.htaccess與1條額外的線路和'/可溼性粉劑管理員/'不被在我的測試重定向。 – anubhava 2011-05-03 01:59:10

+0

謝謝你,夥計。但它不會將https重定向到https ...這就是我想要的... 1)將所有https請求重定向到http(wp-admin除外)(wp-admin應該使用https)。 2)將所有www網址(包括https wp-admin)重定向到非www – THpubs 2011-05-03 02:28:45

0

我認爲這將工作:

# redirecting HTTPS requests 
RewriteEngine On 
RewriteBase /
RewriteCond  %{HTTPS} =on 
RewriteCond  %{REQUEST_URI} !^wp-admin 
RewriteRule  ^(.*)$ http://foo.com/$1 [R=301,L] 

# redirecting all requests to have the right host name 
RewriteEngine On 
RewriteBase /
RewriteCond  %{HTTP_HOST} !^www\.foo\.com  [NC] 
RewriteCond  %{HTTP_HOST} !^$ 
RewriteRule  ^(.*)$ http://foo.com/$1   [R=301,L] 

我唯一能看到的就是你必須要求https://foo.com/wp-admin/而不是https://www.foo.com/wp-admin/

相關問題