Giriş yapmadınız.

#1 28.01.2018 01:12:04

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,675
Website

Htaccess ile geliştirme ortamına göre HTTP'den HTTPS'ye yönlendirme

Merhaba

Bildiğiniz gibi SSL sertifikası olan projelerde htaccess ile http'den https yönlendirmesi yapıyoruz (PHP ile de yapılabilir, örneğin Laravel için konuşursak bir middleware ile halledilebilir ama tüm bağlantıların SSL olması istenirse htaccess daha iyi bir çözüm olacaktır). Özellike Let's Encrypt (Ücretsiz SSL sertifikası) ile bu benim için bir standart oldu diyebilirim.
Böylece kullanıcının güvenli olmayan bağlantıda sitede gezinmesini engellemiş oluyoruz. Bunda şöyle bir sorun oluyor: yerel ortamda çalışırken bazen yerel bir SSL sertifikası kullanmadan çalışmak isteyebiliriz ve elbette yönlendirme olmasını istemeyiz. Bunun için .htaccess dosyasına şöyle bir işlem yapılabilir.

RewriteEngine On

# Yayındaki ortam elbette production
RewriteRule .* - [E=ENVIRONMENT:production]

# Ben yerel ortamda sanal alan adlarını .test olarak kullanıyorum. Yani kendi bilgisayarımda site http://benimsitem.test olarak çalışıyor
# O yüzden burada .test yazan kısmı kendi uzantınızla değiştirin.
# Bu kısımda alan adı .test ile bitiyorsa geliştirme ortamını local yapmış olduk
RewriteCond %{SERVER_NAME} .test$
RewriteRule .* - [E=ENVIRONMENT:local]

# Eğer geliştirme ortamı production ise tüm linkleri https'ye yönlendirelim. Burada elbette benimsitem.com yazan kısmı değiştiriyoruz.
RewriteCond %{ENV:ENVIRONMENT} production
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.benimsitem.com/$1 [R,L]

Bu durumda Laravel için .htaccess dosyamız şu şekilde olabilir. Ben bu şekilde kullanıyorum:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Yayındaki ortam elbette production
    RewriteRule .* - [E=ENVIRONMENT:production]

    # Ben yerel ortamda sanal alan adlarını .test olarak kullanıyorum. Yani kendi bilgisayarımda site http://benimsitem.test olarak çalışıyor
    # O yüzden burada .test yazan kısmı kendi uzantınızla değiştirin.
    # Bu kısımda alan adı .test ile bitiyorsa geliştirme ortamını local yapmış olduk
    RewriteCond %{SERVER_NAME} .test$
    RewriteRule .* - [E=ENVIRONMENT:local]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Eğer geliştirme ortamı production ise tüm linkleri https'ye yönlendirelim. Burada elbette benimsitem.com yazan kısmı değiştiriyoruz.
    RewriteCond %{ENV:ENVIRONMENT} production
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.benimsitem.com/$1 [R,L]

</IfModule>

Son düzenleyen mgsmus (28.01.2018 01:18:42)

Çevrimdışı

#2 28.01.2018 11:41:02

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,486
Website

Yanıt: Htaccess ile geliştirme ortamına göre HTTP'den HTTPS'ye yönlendirme

Ellerine sağlık, güzel paylaşım olmuş.

Çevrimdışı

#3 29.01.2018 14:40:07

ak
Üye
Yer: İstanbul
Kayıtlı: 12.07.2014
Mesajlar: 127

Yanıt: Htaccess ile geliştirme ortamına göre HTTP'den HTTPS'ye yönlendirme

Teşekkürler..

Çevrimdışı

#4 01.02.2018 12:18:10

gokhan87
Üye
Kayıtlı: 07.01.2017
Mesajlar: 63

Yanıt: Htaccess ile geliştirme ortamına göre HTTP'den HTTPS'ye yönlendirme

SSL sertifikaya geçmek istiyordum. Bu konu gayet yararlı olmuş teşekkürler.


Tasarım dolu bir yıl olacak 2017.

Çevrimdışı

Forum alt kısmı