Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Обратите внимание, что мой SSL-сертификат выдан для сайта.com, а не www.website.com.
blockquote>Это ваша основная проблема . Вы никогда не сможете перенаправлять с
www
доnon www
без действительного сертификата дляwww
. Причина заключается в том, что соединение обрабатывается первым, прежде чем веб-сервер обрабатывает что-либо еще, включая любые правила перезаписи. Поэтому, когда ваш браузер подключается к вашему сайту с использованием протокола https, он должен проверить действительный сертификат, потому что это самый характер SSL, чтобы убедиться, что соединение безопасно. Затем, как только это будет сделано, Apache будет обрабатывать правила веб-сервера, которые у вас есть, как переписывание. Поэтому он не может переписываться с www на non www, пока соединение не будет выполнено правильно. Для этого вам также понадобится сертификат дляwww
. Правила перезаписи не являются проблемой.Этот вопрос возникает довольно часто, и его нет. Это характер SSL / шифрования и того, как он работает.
При покупке сертификата старайтесь не покупать только доменное имя, потому что некоторые ЦС предоставят вам это без www. Но если вы используете
www.example.com
в своей CSR, вы получите какwww.example.com
, так иexample.com
в том же сертификате в 99% случаев. Тогда вам не придется беспокоиться об этой проблеме. Они глупые дешевые, поэтому не должно быть проблемой, чтобы получить еще один. SSls.com имеет их для 4.99 / год.
Вы попробовали?
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]