2017-06-23 5 views
0

Also versuche ich etwas einzigartiges zu tun, ich habe ein paar Stunden damit verbracht, über NGINX neu zu schreiben und wie man einen CATCH ALL für eine bestimmte Seite erstellt.Wie man NGINX schreibt SPEZIFISCHE SEITE für Wordpress

Was ich tun möchte:

mysite.com/Subdivision/ ein Wordpress-Seite ist.

Ich möchte in der Lage sein, nach dem Zufallsprinzip zu generieren (TAIL SEITEN), die alle standardmäßig auf die Höher Wordpress Seite gehen (mysite.com/Subdivision/):

mysite.com/Subdivision/Green-Trails
mysite.com/Subdivision/River-Oaks
mysite.com/Subdivision/Creek-Plantation

Und dann in meiner/Vorort/Seite, werde ich schreiben Skript es zu sagen, was mit „Green-Trails“ zu tun und "River-Oaks" und "Creek-Plantation"

Danach funktioniert, ist das Ziel, auch andere Sachen wie

mysite.com/Subdivision/Green-Trails/4-bdr/with-pool/

und meine/Vorort Seiteneinstellungen müssen hinzufügen „IF 4-bdr "in der Request-URI gefunden, setzen Sie dies. Wenn With-Pool im Request-URI gefunden wird, setze dies ... Dies wird alles in PHP-Snippet-Codes geschehen.

Nur müssen Sie über die NGINX Schreibhürde zu bekommen.

Dies ist meine aktuelle Centmin-Setup mit NGINX:

## BEGIN WORDPRESS MOD ## 
index index.php index.html index.htm; 
     # enforce www (exclude certain subdomains) 
     if ($host !~* ^(www|subdomain)) 
     { 
      # rewrite ^/(.*)$ $scheme://www.$host/$1 permanent; 
     } 
     # enforce NO www if ($host ~* ^www\.(.*)) { 
     #  set $host_without_www $1; rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent; 
     #} 


     # unless the request is for a valid file, send to bootstrap 
     if (!-e $request_filename) 
     { 
       rewrite ^(.+)$ /index.php?q=$1 last; 
     } 


location ~ /subdivision/(.*) { 
    index index.php; 
    try_files $uri /index.php?q=/subdivision/&$args; 
} 

    location ~ \.php$ { 
     include fastcgi_params; 
     fastcgi_pass localhost:9000; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    } 

## END WORDPRESS MOD ## 

Wie Sie sehen können: `

location ~ /subdivision/(.*) { 
    index index.php; 
    try_files $uri /index.php?q=/subdivision/&$args; 
} 

`

ist, wo ich NGINX zu sagen, ich versuche, das DIENEN/Subdivision/page Variable zu Wordpress und Wordpress IGNORE den Rest der URL/Green-Trails// River-Oaks sagen /,/Creek-Plantation/

Aber das funktioniert nicht, kann mir bitte jemand helfen, wo habe ich was versäumt?

Antwort

0

Das Problem ist, dass WordPress die Abfragezeichenfolge nicht verwendet, um die anzuzeigende Seite zu bestimmen. Es ruft die Informationen direkt aus der REQUEST_URI ab, die normalerweise auf die ursprüngliche URI gesetzt wird (bevor interne Umschreibungen ausgeführt werden).

Die einfache Lösung besteht darin, eine externe Weiterleitung durchzuführen, aber das ändert den URI, wie er im Browser erscheint.

Was Sie wollen, kann durch Einstellung SCRIPT_FILENAME und REQUEST_URI erreicht werden ausdrücklich:

location ^~ /subdivision/ { 
    include fastcgi_params; 
    fastcgi_pass localhost:9000; 
    fastcgi_param SCRIPT_FILENAME $document_root/index.php; 
    fastcgi_param REQUEST_URI  /Subdivision/; 
} 
Verwandte Themen