Pereiti prie turinio

NGINX htaccess problema


Rekomenduojami pranešimai

Sveiki,

 

Kiek žinau Nginx nepalaiko htaccess, todėl tenka įrašinėti šį bei tą į /etc/nginx/sites-available/default failą (turbūt, bent jau kiek tą įsivaizduoju).

 

Mano kodas:

       location / {
               root   /var/www;
               index  index.php index.html index.htm;
               rewrite ^/(.*)$ /index.php/$1 last;

       }

 

Tačiau niekaip nesuprantu kodėl tai neveikia. Tiesa sakant, nelabai ir pats suprantu kaip tą išvis pasidaryti. Naudoju converterį: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

 

Originalus htaccess failas:

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [L,QSA]

 

Bandžiau Googlintis, bet nelabai kas užvedė ant kelio. Gal kas pagelbėtumėt?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kodėl nenaudoji apache? Taigi jis ir skirtas php daugiau, o nginx skirtas yra labiau proxint tarkim nodeJs skriptus, labai keista jog bandai ant nginx PHP pasijungti, nes su apache viskas by default ateina, o nginx dar reik configint, kad pasileist patį php. Taip paprastai nepasileisi PHP failų ant Nginx. https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04 papasakok dėl ko pasirinkai nginx? Kokia to priežastis buvo?

Redagavo arman
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kodėl nenaudoji apache? Taigi jis ir skirtas php daugiau, o nginx skirtas yra labiau proxint tarkim nodeJs skriptus, labai keista jog bandai ant nginx PHP pasijungti, nes su apache viskas by default ateina, o nginx dar reik configint, kad pasileist patį php. Taip paprastai nepasileisi PHP failų ant Nginx. https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04 papasakok dėl ko pasirinkai nginx? Kokia to priežastis buvo?

 

Teko girdėt, jog NGINX performance geresnį turi, kas mano svetainei aktualu. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Teko girdėt, jog NGINX performance geresnį turi, kas mano svetainei aktualu. :)

Šiek tiek, bet gal ne tame problema bus, o pačiam kode? O viską susirašei nginx ko reikia php'ui?

 

edit: nginx turi pagespeed, kuris tikrai pagreitintų tavo puslapį, cacheintų tavo images, css, js failus.

Redagavo arman
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šiek tiek, bet gal ne tame problema bus, o pačiam kode? O viską susirašei nginx ko reikia php'ui?

 

edit: nginx turi pagespeed, kuris tikrai pagreitintų tavo puslapį, cacheintų tavo images, css, js failus.

 

Hostinge pats kodas veikė puikiai ir bėdų nebuvo, kas ir yra keisčiausia. Todėl spėju rewrite’inimo klaida.

Realiai kai pridedu rewrite eilutę tada išmeta 500 Internal server error.

Redagavo SofteriZ
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Hostinge pats kodas veikė puikiai ir bėdų nebuvo, kas ir yra keisčiausia. Todėl spėju rewrite’inimo klaida.

Realiai kai pridedu rewrite eilutę tada išmeta 500 Internal server error.

bandei paprasta php koda isikelt paziuret ar bent jau veikia. <?php echo php_info(); ?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

bandei paprasta php koda isikelt paziuret ar bent jau veikia. <?php echo php_info(); ?>

 

Bandžiau, puikiai veikė.

 

Error log'as rodo:

 

[error] 23519#23519: *4 rewrite or internal redirection cycle while processing "/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/"

Redagavo SofteriZ
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia reik pamatyt struktūrą viso kodo, bet kiek suprantu nori padaryt jog einant į puslapis.lt/prisijungti atidarytų prisijungti.php failą? Nes ta tavo taisyklė reiškia jog:

rewrite - perrašom

^/(.*)$ - čia ima viską nuo puslapis.lt/(prisijungti)

/index.php/$1 last; čia reiškia kur kreipiam į kurį failą tik dar pridedam prie index.php/(prisijungti) dėl to ir gauni error. Nežinau ką tu ten nori padaryti bet reikėtu manau kažką tokio gal.

 

rewrite ^/(.*)$ /$1.php last;

 

Jeigu nori į PM parašyk, duosi kokį fb pabandysim sutvarkyt :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bandžiau, puikiai veikė.

 

Error log'as rodo:

 

[error] 23519#23519: *4 rewrite or internal redirection cycle while processing "/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/"

 

 

Sako, jog užsuki ciklą. Tau reikia nematchinti index.php:

 

^((?!index\.php).)*$

 

       location / {
               root   /var/www;
               index  index.php index.html index.htm;
               rewrite ^((?!index\.php).)*$ /index.php/$1 last;

       }

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...