Ankündigung

Einklappen
Keine Ankündigung bisher.

nginx > htaccess

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nginx > htaccess

    Hi,

    ich lese gerade einen Artikel/Tutorial über AngularJS mit Smyfon2. Das wollte ich gerne besser nachvollziehen und daher nachbauen.
    Im Artikel wird mit einem nginx Server gearbeitet. Ich möchte aber erstmal noch bei Apache bleiben.
    Nun muss man ein paar Weiterleitungsregel implementieren. Die sind auch beschrieben, aber leider nur in nginx.

    Hat jemand sich schon mit nginx beschäftigt und könnte mir beim übersetzen nach htaccess behilflich sein?

    Hier die nginx Einstellungen:
    Code:
    server {
      listen                *:80;
      server_name           example.com;
    
      location ~ ^/api.+ {
        root /path/to/project/api/web;
        index app.php;
        rewrite ^(.+)$ /app.php/$1 last;
      }
    
      location ~ ^/app\.php($|/) {
        root /path/to/project/api/web;
        index app.php;
        fastcgi_buffer_size 512k;
        fastcgi_buffers 16 512k;
        fastcgi_busy_buffers_size 512k;
        fastcgi_index app.php;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
      }
    
      location / {
        root /path/to/project/dist;
        try_files $uri $uri/ /index.html =404 ;
        index index.html;
      }
    }
    BTW: Über einen Hinweis auf einen guten Artikel über nginx würde ich mich auch sehr freuen.

    Vielen Dank.

  • #2
    wie heisst die tante noch?

    den converter hat sie mir vorgeschlagen

    https://labs.gidix.de/nginx/

    Kommentar


    • #3
      Hab die Tante gefragt und bin auch ihrem Hinweis gefolgt zu dem Platz den du verlinkt hast. Aber das will mir nicht wirklich helfen, da das Word Converter mehr verspricht als drin ist.
      Ne, das bringt, so wie ich das sehen, kein brauchbares Ergebnis.

      Kommentar


      • #4
        Ne, das bringt, so wie ich das sehen, kein brauchbares Ergebnis
        kann ich so nicht nachvollziehen, wohl auch weil ich von dem programm keine fertige lösung erwarte.

        aber mal was anderes, was kannst du denn ßübersetzen ?

        Kommentar


        • #5
          Das mir jetzt ein bisschen unangenehm, da man schnell sehen wird das ich auch von htaccess nicht allzu viel plan habe, aber folgendes ist das was ich bis jetzt habe:
          Code:
          RewriteEngine On
          
          RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
          RewriteRule ^(.*)$ http://%1$1 [R=301,L]
          
          RewriteCond %{REQUEST_URI} ^(/api.+) [NC]
          RewriteRule ^(.+)$ app.php/$1 [L]
          Ich weiß was passieren soll. Aber leider bekomme ich das auch nicht so einfach mit meinen htaccess-Kenntnissen hin.

          Das soll passieren:
          1. Alles was an "/api/" ankommt soll an die app.php weitergeleitet werden.
          2. Alles was auf der app.php ankommt soll in den PHP-buffer (?) gesendent werden.
          3. Alle Anfragen auf nicht statische Dateien werden an /dist/index.php weitergeleitet

          Ich hoffe ich liege damit nicht falsch.

          Update:
          Code:
          Options +FollowSymLinks -MultiViews
          
          RewriteEngine On
          RewriteBase /
          
          #LogLevel alert rewrite:trace3
          
          RewriteRule ^/api([^?]*)$ /api/web/app.php/$1 [NC,L,QSA]

          Kommentar


          • #6
            ich weiss nicht ob ein rewrite:tgrace8 sinn macht (war das 2.2?) und rage mich wieso du solch ein muster benüzt ([^?]*) aber was kommt denn raus bei deinen versuchen?

            Kommentar


            • #7
              Das LogLevel geht nicht. Das habe ich nur grad da um mich dran zu erinnern. Habe das nochmal umgebaut.
              Code:
              Options +FollowSymLinks -MultiViews
              
              RewriteEngine On
              RewriteBase /
              
              RewriteRule ^api(.*) /api/web/app.php$1 [NC,L,QSA]
              Das funktioniert nun. Aber bei der zweiten nginx Einstellung bin ich etwas überfragt.

              Kommentar


              • #8
                rewrite log level wird je nach version 2.2 oder 2.4 anders getraced: https://wiki.apache.org/httpd/RewriteLog
                Aber bei der zweiten nginx Einstellung bin ich etwas überfragt.
                die app location leuchtet mir nicht ein, möglicherweie wenn ich das orginal sehe.

                in der dritten regel checked er wohl nur ob die datei da ist und liefert sonst 404.



                Kommentar


                • #9
                  Der zweite Befehl soll wohl die Anftrage an FastCGI weiterleiten. Den original Artikel findest du anbei. Vielleicht brauche ich das ja garnicht.

                  https://blog.mayflower.de/4501-Symfo...AngularJS.html

                  Kommentar


                  • #10
                    Ich möchte meine Anfrage um eine weitere Frage erweitern:

                    Macht es einen wesentlichen Unterschied wie ich eine rewrite-Regel implementiere?
                    Folgende zwei Möglichekeiten habe ich bis jetzt gesehen:

                    Code:
                    RewriteRule ^api(.*) /api/web/app.php$1 [NC,L,QSA]
                    RedirectMatch 301 /api(.*) /api/web/app.php/$1
                    Ist es egal wie man es macht oder gibt es da ein Best-Practice?

                    Kommentar


                    • #11
                      nicht so richtig viel posts von mitforisten, welche solche probleme aus dem ff kennen, schade.
                      auch wenn dir das wohl nicht hilft, stellt sich doch die frage, inwiefern d9ie von dir verlinkte documentation das problem optimal löst.
                      api abfragen beispielsweise kann man im router über:
                      Code:
                      condition: "request.isXmlHttpRequest()"
                      #  oder
                      requirements:
                            _format:  json
                      erkennen.
                      der vom mir angesteuerte controller rö delt ähnlich auf der db rum, haut aber die ausgabe anstatt durch twig einfach durch json_encode.

                      Kommentar


                      • #12
                        Zitat von Kinger Beitrag anzeigen
                        ich lese gerade einen Artikel/Tutorial über AngularJS mit Smyfon2. Das wollte ich gerne besser nachvollziehen und daher nachbauen.
                        Im Artikel wird mit einem nginx Server gearbeitet. Ich möchte aber erstmal noch bei Apache bleiben.
                        ......
                        Hi, blöde Frage ... aber ... warum erstmal noch bei Apache bleiben? Ich sag jezz nicht das ich nginx besser finde ... aber warum nicht einfach ausprobiern, bevor du ewig an rewrite rules bastelst =) ... und zur Not gibts den Converter auch umgekehrt http://winginx.com/en/htaccess =) Tutorials gibts inwzischen viele und mit dem aufbau der *.conf files ist man auch schnell vertraut ... gogogo =)

                        Viele Grüße - Stef
                        Heilung bei codebedingtem Augenkrebs

                        Kommentar


                        • #13
                          Dann sei dazu gesagt, nginx und apache sind Performance-Bremsen. Lightspeed Webserver for the win.
                          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                          Kommentar

                          Lädt...
                          X