2015-12-30 3 views
0

У меня есть это в моей .htaccess.htaccess проблема с переразводки к протоколу HTTPS

Options +FollowSymlinks 
RewriteEngine On 
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] 
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] 
RewriteRule ^download/(.*) /index.php?route=error/not_found [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 
RewriteCond %{SERVER_PORT} 80 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R,L=301] 
RewriteCond %{HTTP_HOST} ^www\.clipboards\.com [NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R,L=301] 

Эти условия работают нормально с одним исключением. Если я пришел из http (non-ssl), он добавит index.php? маршрут к моему url перед посылкой его к https. Это не тот случай, если я прихожу непосредственно из https, и в этом случае он работает нормально. Может кто-то помочь мне с этим. спасибо

+0

Вы пытаетесь применять WWW также или что-то? Какова цель последнего правила? –

ответ

1

Вы должны поместить свои переадресации вверху, и вы можете комбинировать нижние 2 правила. Также обратите внимание, что у вас есть недопустимый синтаксис [R,L=301], он должен быть [R=301,L]

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] 
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] 
RewriteRule ^download/(.*) /index.php?route=error/not_found [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 
Смежные вопросы