Какъв е най-добрият начин да принудите HTTPS и WWW, но да позволите localhost?

Какъв е най-добрият начин да принудите HTTPS и WWW, но да позволите localhost? [български]

HTACCESS налага HTTPS и WWW, но позволяват localhost

Важно е да принудите HTTPS и WWW поради няколко причини: спечелете доверието на посетителите си, като покажете, че връзката е защитена, и ако използвате поддомейн като www, запазвайки последователност с посетителите и отчитането си, в евтината си мрежа хостинг например.

Лесно може да се усложни в отчитането на двигатели като Google Search Console да има различни изгледи за точно същия сайт и страници. Една със сигурна HTTPS връзка, една без и една с уеб поддомейн www и друга без и дори да се превърне в кошмар, който да ви накара да настроите филтър за поддомейни на Google Analytics, за да имате постоянно отчитане.

Всъщност има някои лесни начини да се гарантира, че всички посетители ще бъдат пренасочени към защитата в HTACCESS принудително HTTPS версията на сайта и поддомейна в мрежата, без това да повлияе на посещенията, а също така може да се използва за пренасочване на уебсайт към друг уебсайт с този прост и елегантен метод.

И на всичкото отгоре, и за да бъде завършен, за да се уверите, че до поддомейна localhost може да се стигне без поддомейна в мрежата или пренасочването към HTTPS и че страниците, завършващи с наклонена черта, ще бъдат пренасочени към нормалната страница, за да се избегне двоен брой на едни и същи страници в отчетите.

Нека се отървем от всички тези дублирани страници, които затрудняват в края правилното съгласуване на анализите:

  • http://mywebsite.com/page

  • http://mywebsite.com/page/

  • https://mywebsite.com/page

  • https://mywebsite.com/page/

  • http://www.mywebsite.com/page

  • http://www.mywebsite.com/page/

  • https://www.mywebsite.com/page

  • https://www.mywebsite.com/page/

  • Всичко това ще стане чрез актуализиране на .Htaccess файла, който е скрит файл, използван на сървърите на Apache, обикновено съхраняван в главната папка на уебсайта.

Пренасочване на страница, завършваща с наклонена черта

За да премахнете крайната наклонена черта от URL адреса, завършващ с един от тях, и да изпратите исканията да бъдат пренасочени към стандартната страница без наклонена черта, просто съпоставете URL адресите, започващи и завършващи с наклонена черта, уверете се, че не е искана директория, и пренасочете към URI на цялата заявка без крайната наклонена черта.

Също така, пренасочете страницата към защитения уеб URL, който трябва да бъде правилен - това ще реши директно всичките ви потенциални проблеми, включително край на наклонена черта, незащитена заявка или поддомейн извън Web.

След това се нуждаем и от допълнително парче код, за да сме сигурни, че всяко запитване към директория завършва с наклонена черта, тъй като нормалните URL адреси в директории на уебсайтове ще завършат с един от тях.

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]
# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

HTACCESS форсира HTTPS и форсира WWW Htaccess

Сега, когато проблемът с крайната наклонена черта е решен, нека се съсредоточим върху липсващия HTTPS или липсващия уеб поддомейн, който може да се случи, с Htaccess пренасочване http към https със сила www.

Най-лесният и стилен начин да се случи това е да се идентифицират и двете в точно същото състояние на Htaccess.

Това става лесно, като се съпоставят URL адреси, които не започват с поддомейн Web, или всяка заявка, която не включва HTTPS, и пренасочване на правилния URL адрес на нашия уебсайт, който включва както сигурната връзка, така и уеб поддомена www.

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Принуждавайте HTTPS и WWW, но позволявайте localhost

Сега всичко това е добре, но какво се случва, когато всъщност се опитаме да достигнем нашия уебсайт в режим на разработка на локален сървър XAMPP, но всичките ни искания към http: // localhost сега се пренасочват към https://www.mysite.com - нашата производствена версия?

Добре решението е да използвате повторно предишното парче код, което налага HTTPS и WWW версия на заявката за URL, но стартирайте, като изключите от заявките за проверка, които са адресирани към localhost или до нашия локален IP адрес, който е 127.0.0.1.

И това е всичко, сега имаме красиво парче код, което ще реши всичките ни проблеми!

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Пренасочете HTTP към HTTPS Htaccess, принудете WWW и премахнете крайната наклонена черта

Цялото парче код по-долу може да се използва във файла HTACCESS, за да се постигне всичко следното:

Пренасочете HTTP към HTTPS в htacces,

Форсирайте WWW в Htaccess,

Премахнете крайната наклонена черта в URL адреса.

Разбира се, не забравяйте да промените URL адреса на уебсайта за този, който се отнася за вас.

Той дори може да се използва за пренасочване на уебсайт към друг уебсайт , като просто промените целевите URL адреси към другия си най-добър евтин уеб хостинг уебсайт:

#--------------------------------------------------
# Force WWW htaccess : /
#--------------------------------------------------
#### Force HTTPS://WWW and remove trailing / from files ####
## Turn on rewrite engine
RewriteEngine on

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]

# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

# HTACCESS force HTTPS and force WWW htaccess
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Фото галерия

Подобни статии

Коментари (0)

Оставете коментар

Увеличете рекламните приходи с 50-250% с Ezoic. Партньор, сертифициран от Google.
Увеличете рекламните приходи с 50-250% с Ezoic. Партньор, сертифициран от Google.
 
Увеличете рекламните приходи с 50-250% с Ezoic. Партньор, сертифициран от Google.
Увеличете рекламните приходи с 50-250% с Ezoic. Партньор, сертифициран от Google.