-
Üyelik
13.04.2013
-
Yaş/Cinsiyet
28 / E
-
Meslek
Software Engineer
-
Konum
İstanbul Anadolu
-
Ad Soyad
S** Y**
-
Mesajlar
501
-
Beğeniler
86 / 124
-
Ticaret
12, (%100)
Arkadaşlar merhaba,
NGINX dünyasında yeniyim. İlk defa bir web projemizi NGINX üzerinde geliştiyorum. URL yapımı değiştirmek istiyorum. Öncelikle şu anki var olan url düzenimden bahsedeyim;
domain.com/character.php
domain.com/character.php?id=1
domain.com/character.php?id=1page=slog
domain.com/character.php?page=slog
domain.com/character.php?page=slog&date=4-2018
domain.com/character.php?id=1&page=slog&date=4-2018
domain.com/character.php?id=1&page=slog&sid=10
domain.com/character.php?page=slog&sid=10
Yukarıda görmüş olduğunuz linkler, sitemin bazı sayfalarına ait. Gördüğünüz gibi SEO dostu yapıda değiller. Bu linkleri şu şekle çevirmeyi başardım;
domain.com/character/
domain.com/character/1
domain.com/character/1/slog
domain.com/character/slog
domain.com/character/slog/date/4-2018
domain.com/character/1/slog/date/4-2018
domain.com/character/1/slog/sid/10
domain.com/character/slog/sid/10
Fakat bu yapıyı yaparken, NGINX config dosyama şu uzun kod bloğunu eklemiş oldum.
location = /character {
try_files character.php /character.php;
}
location = /character/ {
try_files character.php /character.php;
}
location ~ /character/([0-9]+)$ {
try_files character.php /character.php?id=$1;
}
location ~ /character/([A-z]+)$ {
try_files character.php /character.php?page=$1;
}
location ~ /character/([0-9]+)/([A-z]+)$ {
try_files character.php /character.php?id=$1&page=$2;
}
location ~ /character/([0-9]+)/([A-z]+)/date/(.*)$ {
try_files character.php /character.php?id=$1&page=$2&date=$3;
}
location ~ /character/([A-z]+)/date/(.*)$ {
try_files character.php /character.php?page=$1&date=$2;
}
location ~ /character/([0-9]+)/([A-z]+)/sid/([0-9]+)$ {
try_files character.php /character.php?id=$1&page=$2&sid=$3;
}
location ~ /character/([A-z]+)/sid/([0-9]+)$ {
try_files character.php /character.php?page=$1&sid=$2;
}
location ~ /character/([A-z]+)/action/([A-z]+)/sid/([0-9]+)$ {
try_files character.php /character.php?page=$1&action=$2&sid=$3;
}
Ve gördüğünüz üzere bu sadece character.php ve onun altsayfaları için. İlerde character.php haricindeki birkaç sayfada buna benzer karmaşık URLler olacak. O sayfaları da istediğim hale getirmek için yine server config dosyama bir ton kod eklemem gerecek. Acaba yanlış bir şeyler mi yapıyorum? Bu işin daha kolay bir yolu yok mu?
-
Üyelik
24.08.2012
-
Yaş/Cinsiyet
29 / E
-
Meslek
Front end Developer
-
Konum
Aksaray
-
Ad Soyad
H** K**
-
Mesajlar
1041
-
Beğeniler
327 / 328
-
Ticaret
12, (%100)
Merhaba,
Hazır bir yazılım kullanmıyorsanız örneğin Wordpress gibi mecburen kendinize ait url yapınızı bu şekilde oluşturmanız gerekiyor. nginx.conf dosyasını daha kalabalık olmasını istemiyorsunuz eğer nginx.conf bulunduğu dizine bir adet kendinize göre isimlendireceğiniz bir dosya daha oluşturun ve onu nginx.conf dosyasına include edin.
Böylelikle tüm url yapınızı tek bir dosyada toplamış olur, nginx.conf üzerinde ki kalabalığıda ortadan kaldırmış olursunuz.
Örnek include şekli;
include /etc/nginx/kaliciurl.conf;
Hazır bir yazılım kullanmadığınız için url yapınızı kendiniz oluşturmanız gerekiyor. Wordpress vs olsaydı try_files komutu ile hallediliyordu ancak özel yazılımlarda nginx'i yazılıma göre configure etmek gerek.
1 kişi bu mesajı beğendi.
MyBB Türkçe Destek Forumu | mybb.pro
-
Üyelik
13.04.2013
-
Yaş/Cinsiyet
28 / E
-
Meslek
Software Engineer
-
Konum
İstanbul Anadolu
-
Ad Soyad
S** Y**
-
Mesajlar
501
-
Beğeniler
86 / 124
-
Ticaret
12, (%100)
Hazır bir sistem kullanmıyorum malesef. Scripti kendim yazıyorum. Yani o zaman nginx config dosyasına yazdığım kodların daha kısa bir hali yok mu? İlla böyle her parametre için tek tek belirtmem mi gerekecek?
Mrtcn
PrismaCSI
Kullanıcı
-
Üyelik
06.09.2013
-
Yaş/Cinsiyet
32 / E
-
Meslek
Cyber Sec & Project Manager
-
Konum
Ankara
-
Ad Soyad
M** G**
-
Mesajlar
3356
-
Beğeniler
481 / 1987
-
Ticaret
10, (%100)
Yazılımınızda değişiklik yaparak çözebilirsiniz. Endpoint şeklinde yazmanız bu tarz nginx ameleliğinden kurtarır.
Yoksa Nginx de her bir URL için bu şekilde bir tanımlama ile düzeltme yapmak zorundasınız. Nginxde bu tanımlamalar web sunucusunun yavaşlamasına neden olmaz.(insanların genelde aklına bu geliyor çünkü)
Kolay gelsin.
1 kişi bu mesajı beğendi.
-
Üyelik
24.08.2012
-
Yaş/Cinsiyet
29 / E
-
Meslek
Front end Developer
-
Konum
Aksaray
-
Ad Soyad
H** K**
-
Mesajlar
1041
-
Beğeniler
327 / 328
-
Ticaret
12, (%100)
srhtycl adlı üyeden alıntı
Hazır bir sistem kullanmıyorum malesef. Scripti kendim yazıyorum. Yani o zaman nginx config dosyasına yazdığım kodların daha kısa bir hali yok mu? İlla böyle her parametre için tek tek belirtmem mi gerekecek?
PHP ile url yapıların self hale getirebilirsiniz. Bir php dosyası oluşturup, tüm url yapınızı oradan halleder, yönlendirme işlemlerini php ile yapar daha sonra nginx üzerinden bağlantılara gelen istekleri bu php dosyasına yönlendirirseniz soruna çözüm olabilir diye düşünüyorum. Kesin değildir ancak denemekten zarar gelmez bence
1 kişi bu mesajı beğendi.
MyBB Türkçe Destek Forumu | mybb.pro