2015-01-19 4 views
1

Я проверил все связанные вопросы, которые я могу найти здесь (и в Google вообще), и попробовал все различные решения, но не смог получить это работать.Перенаправить одну страницу Wordpress с HTTPS на HTTP

Я работаю над сайтом Wordpress, который недавно прошел SSL. Я настроил его так, чтобы все страницы были привязаны к https, отредактировав страницу «Настройки» в области «Администратор», добавив соответствующую строку в файл wp-config, чтобы заставить административную сторону быть https и изменили мои файлы htaccess на следующие :

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/branding/ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteRule ^branding/ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 


# 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 

Вот что я хотел бы это сделать ...
1) http://www.example.com/ (и любые дополнительные страницы, за исключением брендинга) перенаправляется на https://example.com
2) http://example.com/branding остается, как это
3) https://example.com/branding перенаправляется на http://example.com/branding

Вышеупомянутый код htaccess работает, чтобы заставить http: https :, однако, если я вхожу либо http://example.com/branding, либо https://example.com/branding Я перенаправлен на https://example.com.

Я использовал многочисленные варианты исходного кода перезаписи и поместил его в разные места (как описано в других ответах на подобные вопросы здесь) без изменения результата.

Если кто-нибудь скажет мне, где моя ошибка, и как ее исправить, было бы очень признательно.

ответ

0

С помощью коллеги, мы получили это сработало. Вот обновленный код ...

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/branding/$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} ^/branding/$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

WP-специфические правила в файле Htaccess привести к возникновению каких-то странных ситуаций. Главное, что существует внутренняя переписывание от/брендинг///index.php, а затем WP обрабатывает запрос в PHP. Проверка файла проверит проверку, чтобы убедиться, что файл index.php существует. WP будет внутренне заниматься перенаправлением действительных запросов страницы, которые не имеют завершающих косых черт.

0

Попробуйте это:

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/branding/ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 


RewriteCond %{HTTPS} on 
RewriteRule ^branding(.*) http://%{HTTP_HOST}/branding$1 [R=301,L] 
+0

К сожалению, это не сработало. Используя этот код, он говорит мне, что у меня есть цикл переадресации, когда я перехожу на http: example.com/branding или https: example.com/branding. Если я добавлю трейлинг /, переадресую на https://example.com (домашняя страница). – deanp

+0

Кажется, что это часть кода, который не работает должным образом ... 'RewriteCond% {REQUEST_URI}! ^/Брендинг /' – deanp

+0

Может быть, попробуйте удалить '/' с конца. –

0

Ищет это в течение нескольких часов ... Вот настройка, если вам нужно перенаправить более одной страницы на http из https.

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/page1|page2|page3/$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} ^/page1|page2|page3/$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
Смежные вопросы