- 
                    Üyelik
                    13.04.2013
                
 
                - 
                    Yaş/Cinsiyet
                    29 / 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
                    30 / E
                
 
                - 
                    Meslek
                    Front end Developer
                
 
                - 
                    Konum
                    Aksaray
                
 
            
            
                - 
                    Ad Soyad
                    H** K**
                
 
                - 
                    Mesajlar
                    1042
                
 
                - 
                    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
                    29 / 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
                    33 / 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
                    30 / E
                
 
                - 
                    Meslek
                    Front end Developer
                
 
                - 
                    Konum
                    Aksaray
                
 
            
            
                - 
                    Ad Soyad
                    H** K**
                
 
                - 
                    Mesajlar
                    1042
                
 
                - 
                    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