2015-01-18 2 views
1

Может быть, лучший способ сделать это интересно. Он делает следующее:Лучший способ URL Переписать этот .htaccess

A) маршрутизация mydomain.uk к www.mydomain.uk

B) маршрутизация ничего не НТТР https://www.mydomain.uk

Я не используют сервера на базе Linux так, я уверен, есть лучший способ сделать это. Конечный результат должен быть какой-либо базы URL должен в конечном итоге на https://www.mydomain.uk

Heres Кодекса

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 

RewriteCond %{HTTP_HOST} ^mydomain.uk$ 
RewriteRule ^/?$ "https\:\/\/www\.mydomain\.uk\/" [R=301,L] 

ответ

1

Вы можете использовать OR

RewriteEngine On 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^mydomain.uk$ 
RewriteRule (.*) https://www.mydomain.uk%{REQUEST_URI} [R,L] 

Правило RewriteCond %{HTTP_HOST} ^mydomain.uk$ также может быть более ограничительным и поймать любого хоста, который не является www.mydomain.uk.

+0

Большое спасибо за ваш ответ, но для моих неподготовленных глаз linux мне было интересно, есть ли разница в том, что делали два разных (иш) ответа, и если бы один был лучшим способом. – CloudSurferUK

+0

Оба правильные. @anubhava - это «перенаправить все, что не соответствует», мой - «перенаправление только в случае совпадений». –

+0

Обычно я предлагаю использовать его подход, за исключением случаев, когда правило помещается в виртуальный хост, который потенциально может обслуживаться с разными именами хостов, и вам остается только перенаправить не-www на www. Это может иметь место с некоторыми общедоступными службами хостинга, которые сопоставляют субдомены в папке в основном домене (например, CPanel). –

2

Эти 2 правила могут быть легко объединены в один, как этот:

RewriteEngine On 

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.mydomain.uk%{REQUEST_URI} [L,R=301,NE] 
+0

Большое спасибо за ваш ответ, но для моих необученных глаз linux мне было интересно, есть ли разница в том, что делали два разных (иш) ответа, и если бы один был лучшим способом. – CloudSurferUK

+0

Ну, если у вас нет нескольких доменных имен, указывающих на один и тот же «DocumentRoot», тогда это правило не требуется, чтобы в коде дважды было указано имя хоста. (Даже это одно жесткое кодирование может быть устранено, если вы хотите). – anubhava

Смежные вопросы