Эти странные цифры появляются из-за того, что компьютеры используют двоичную (базовую 2) систему счисления, а мы используем десятичную (базовую 10).
Есть большинство дробных чисел, которые не могут быть точно представлены в двоичном или десятичном или в обоих. Результат - округленное (но точное) число результатов.
Эта конфигурация работала для меня в bitnami wordpress с настройкой SSL:
Добавил ниже под «RewriteEngine On» в файле /opt/bitnami/apps/wordpress/conf/httpd-app.conf
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Для Https
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^(.*)$ http%1://www.%{HTTP_HOST}/$1 [R=301,L]
Я протестировал все вышеперечисленные решения, но не работал для меня, я попытался удалить http: // и не перенаправлять также удалил WWW, он перенаправлял хорошо, поэтому я запутался, особенно я запускаю все свои сайты под https: //
Итак, я объединил некоторые коды и разработал идеальное решение для http: // и https: // и www и non-www.
# HTTPS forced
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# Redirect to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
Надеюсь, это может помочь кому-то:)
Вот правильное решение, которое поддерживает https и http:
# Redirect to www
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Попробуйте это, я использовал его на многих веб-сайтах, он отлично работает
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^bewebdeveloper.com$
RewriteRule ^(.*) http://www.bewebdeveloper.com/$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule (.*) http://www.domain.com/$1 [L,R=301]
Это перенаправит ваш домен, который не запущен с помощью WWW. Он не перенаправляет ваш весь поддомен.
Это полезно.
Если возможно, добавьте это в основной файл конфигурации Apache. Это более легкое решение, требуется меньше обработки.
<VirtualHost 64.65.66.67>
ServerName example.com
Redirect permanent / http://www.example.com/
</VirtualHost>
<VirtualHost 64.65.66.67>
ServerAdmin me@example.com
ServerName www.example.com
DocumentRoot /var/www/example
.
.
. etc
Таким образом, отдельный VirtualHost
для «example.com» захватывает эти запросы, а затем постоянно перенаправляет их на ваш основной VirtualHost
. Таким образом, никакого анализа REGEX с каждым запросом нет, и ваши клиентские браузеры будут кэшировать перенаправление, чтобы они никогда (или редко) не запрашивали «неправильный» URL-адрес, сохраняя при загрузке сервера.
Обратите внимание: конечная косая черта в Redirect permanent / http://www.example.com/
. Без него перенаправление из example.com/asdf
будет перенаправлено на http://www.example.comasdf
вместо http://www.example.com/asdf
.
Избегайте 301 и предпочитаете современные коды статуса ответа 303 или 307.
Подумайте, если вам действительно нужна постоянная перенаправленная как [R=301]
, потому что если вы решите изменить его позже, тогда предыдущие посетители страницы будут продолжать видеть страницу исходного перенаправления.
Информация о постоянном перенаправлении часто сохраняется в кеше браузера и , в общем, его трудно устранить (перезагрузка страницы не решает проблему).
Новая версия HTTP-протокола (v1.1) добавила два новых кода статуса ответа, которые может использоваться вместо 302.
303
Перенаправление URL, но требуя изменить тип запроса для GET. 307
Перенаправление URL, но требуя сохранения тип запроса, который был первоначально отправлен. Вы все равно можете использовать код 302
(перенаправление непостоянства), хотя он считается неоднозначным. В любом случае, большинство браузеров реализуют 302
так же, как и новый 303
код.
Я считаю, что главный ответ успешно перенаправляет не-www на www (ex: mysite.com -> www.mysite.com), но не учитывает поддомены подстановочных знаков, что приводит к:
random.mysite.com -> www.random.mysite.com
Вот решение с / без HTTPS
HTTP
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteRule ^(.*)$ http%{ENV:protossl}://www.mysite.com/$1 [L,R=301]
HTTP / HTTPS
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=protocol:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ - [env=protocol:http]
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteRule ^(.*)$ %{ENV:protocol}://www.mysite.com/$1 [L,R=301]
* note: я не тестировал https, потому что в настоящее время у меня нет сертификата для тестирования, но если кто-то может проверить или оптимизировать то, что у меня есть, это будет потрясающе.
Добавьте следующий код в файл .htaccess.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
URL-адрес перенаправления учебника можно найти здесь - Перенаправить не-www на www & amp; HTTP to HTTPS с использованием файла .htaccess
Запись в .htaccess:)
## Redirect from non-www to www (remove the two lines below to enable)
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Следующий пример работает как на ssl, так и на не-ssl и работает намного быстрее, поскольку вы используете только одно правило для управления http и https
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
[Tested]
перенаправляет
http
-
https
-