• 05-05-2023, 23:13:32
    #1
    Merhaba arkadaşlar

    htaccess kullanıyordum ama şirketin yeni aldığı sunucuda apache yokmuş nginx varmış. Bu yüzden onu öğrenmek istiyorum ama beceremedim. İnternette de istediğim şeyi bir türlü bulamadım. Ben mi anlamıyorum yoksa millet mi çok iyi anlıyor kafam karıştı

    Şimdi sormak istediğim şey için şöyle anlatmak istiyorum. Normalde xampp indirip kuruyordum. htdocs içinde yazdıklarım localhostte görünüyordu. htaccess ile de rule lar ayarlıyordum.
    Şimdi nginx e geçiş yapınca. Öncelikle nginx e indirdim. html dosyasındaki index.html çalışıyor. Welcome yazısı görünüyor. Ancak index.php yapıyorum ismini 403 forbidden diyor. conf dosyasında index.html yazan yeri index.php şeklinde değişip yeniden başlattım ama bu kez de bişey indiriyor muşum gibi dosya kaydetme ekranı geliyor önüme pop up şeklinde. Bu nginx çalışma mantığı tam olarak nasıldır. Conf olaylarını anlatan bi sayfa vs var mıdır conf mantığını da anlamak için bulamadım öyle bi yer.

    Yardımcı olursanız çok minnettar olurum. Teşekkür ederim.
  • 05-05-2023, 23:20:45
    #2
    omergunay adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar

    htaccess kullanıyordum ama şirketin yeni aldığı sunucuda apache yokmuş nginx varmış. Bu yüzden onu öğrenmek istiyorum ama beceremedim. İnternette de istediğim şeyi bir türlü bulamadım. Ben mi anlamıyorum yoksa millet mi çok iyi anlıyor kafam karıştı

    Şimdi sormak istediğim şey için şöyle anlatmak istiyorum. Normalde xampp indirip kuruyordum. htdocs içinde yazdıklarım localhostte görünüyordu. htaccess ile de rule lar ayarlıyordum.
    Şimdi nginx e geçiş yapınca. Öncelikle nginx e indirdim. html dosyasındaki index.html çalışıyor. Welcome yazısı görünüyor. Ancak index.php yapıyorum ismini 403 forbidden diyor. conf dosyasında index.html yazan yeri index.php şeklinde değişip yeniden başlattım ama bu kez de bişey indiriyor muşum gibi dosya kaydetme ekranı geliyor önüme pop up şeklinde. Bu nginx çalışma mantığı tam olarak nasıldır. Conf olaylarını anlatan bi sayfa vs var mıdır conf mantığını da anlamak için bulamadım öyle bi yer.

    Yardımcı olursanız çok minnettar olurum. Teşekkür ederim.
    Merhabalar, NGINX'de .htaccess işlemesi yoktur kuralları .conf olarak baştan yazmak-dönüştürmek gerekir.
    Probleminiz, PHP handler'in kurulmamış ve NGINX'e tanıtılmamış olmasıdır; .php dosyalarını ortam dosyası sanarak bilgisayarınıza indirmenize sebep oluyor.
    Conf için İngilizce kaynakları öneririm, ücretli destek de sunabilirim.
  • 05-05-2023, 23:26:13
    #3
    PHP indirip tanımlamanız gerek. .htaccess için ise .htaccess to NGINX yazarak googleda dönüşturebilirsiniz. Nginx conf eklemeniz gerekiyor.
  • 05-05-2023, 23:52:25
    #4
    kendinize göre ayarlayın hocam
    server {
    server_name example.com;
    root /var/www/html/proje/public/;
    index index.php index.html index.htm;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ .php$ {
    try_files $uri = 404;
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass php8:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    }
  • 06-05-2023, 22:08:47
    #5
    @ardayildiz; Hocam şimdi php kodunu çalıştırdım ancak htaccess i dönüştürmeme rağmen olmadı bi türlü.

    RewriteRule ^([0-9a-zA-Z-_/]+)$ index.php?url=$1

    şu htaccess ile işlem yapıyordum. location / { } burda mı bi değişiklik yapmak lazım tam bilemedim mantığını. location ^([0-9a-zA-Z-_/]+)$ { } şöyle falan denedim ama olmadı bi türlü.
  • 06-05-2023, 22:38:29
    #6
    .htaccess içerisindeki rewrite kurallarını paylaşırsanız ona göre Nginx konfigürasyonuna bakalım.
  • 06-05-2023, 23:08:33
    #7
    ardayildiz adlı üyeden alıntı: mesajı görüntüle
    kendinize göre ayarlayın hocam
    server {
    server_name example.com;
    root /var/www/html/proje/public/;
    index index.php index.html index.htm;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ .php$ {
    try_files $uri = 404;
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass php8:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    }
    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    .htaccess içerisindeki rewrite kurallarını paylaşırsanız ona göre Nginx konfigürasyonuna bakalım.

    Tek kuralım var. => RewriteRule ^([0-9a-zA-Z-_/]+)$ index.php?url=$1
  • 07-05-2023, 00:27:29
    #8
    Nginx konfigürasyon dosyanıza ekleyin:

    location / {
        try_files $uri $uri/ @rewrite;
    }
    location @rewrite {
        rewrite ^/$ /index.php?url=$1? last;
        rewrite ^/([0-9a-zA-Z-_/]+)$ /index.php?url=$1 last;
    
        return 404;
    }
    Kaydettikten sonra Nginx sunucuya restart atın.

    Az önceki konfigüre olmazsa, aşağıdakini deneyin:

    location / {
        try_files $uri $uri/ @rewrite;
    }
    location @rewrite {
        rewrite ^/([0-9a-zA-Z-_/]+)$ /index.php?url=$1 last;
    
        return 404;
    }
    Kaydettikten sonra Nginx sunucuya restart atın.

    Az önceki de olmazsa son olarak şunu deneyin:

    location / {
      rewrite ^/([0-9a-zA-Z-_/]+)$ /index.php?url=$1 last;
    }
    Kaydettikten sonra Nginx sunucuya restart atın.
  • 07-05-2023, 21:55:51
    #9
    ardayildiz adlı üyeden alıntı: mesajı görüntüle
    kendinize göre ayarlayın hocam
    server {
    server_name example.com;
    root /var/www/html/proje/public/;
    index index.php index.html index.htm;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ .php$ {
    try_files $uri = 404;
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass php8:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    }
    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    Nginx konfigürasyon dosyanıza ekleyin:

    location / {
        try_files $uri $uri/ @rewrite;
    }
    location @rewrite {
        rewrite ^/$ /index.php?url=$1? last;
        rewrite ^/([0-9a-zA-Z-_/]+)$ /index.php?url=$1 last;
    
        return 404;
    }
    Kaydettikten sonra Nginx sunucuya restart atın.

    Az önceki konfigüre olmazsa, aşağıdakini deneyin:

    location / {
        try_files $uri $uri/ @rewrite;
    }
    location @rewrite {
        rewrite ^/([0-9a-zA-Z-_/]+)$ /index.php?url=$1 last;
    
        return 404;
    }
    Kaydettikten sonra Nginx sunucuya restart atın.

    Az önceki de olmazsa son olarak şunu deneyin:

    location / {
      rewrite ^/([0-9a-zA-Z-_/]+)$ /index.php?url=$1 last;
    }
    Kaydettikten sonra Nginx sunucuya restart atın.

    Hocam hepsini denedim olmadı malesef. Vaktin varsa uzak bağlantı ile de bakabilirseniz çok iyi olur hocam. Belki ben ufak bişeyi atlıyor olabilirim.