Ich habe eine Website, die PHP verwendet. Es ist eine Site, die es jemandem erlaubt, eine Datenbank mit einem PHP GET-Aufruf zu durchsuchen. Dann zeigt es alle Elemente an, die zur Suche passen.ein PHP GET URL mit nginx Maskierung
Es gibt viele Suchfilter (Preis, Herkunft Standort, Kategorie). Dies ist, was die URL sieht aus wie nach einer Suche, wo der Benutzer „blaues Auto“ und „Dallas“ eingegeben
Gibt es eine Möglichkeit, dies wie aussehen zu lassen:
http://example.com/s/blue+cars/l/Dallas
ohne die GET-Funktionalität am Code-Ende zu ändern?
Ich habe auch JQuery auf der Site ausgeführt wird, wenn das etwas ist, das verwendet werden kann, um dies zu beheben.
HINWEIS: Ich bin mit nginx
EDIT 1
Angesichts der Beratung unten scheint eine nginx Frage zu sein.
Hier ist meine aktuelle/etc/nginx/sites-available/default file:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name server_domain_name_or_IP;
location/{
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Als ich dies einfach vor dem letzten Add '}':
# nginx configuration
location/{
if (!-e $request_filename){
rewrite ^(.*)$ /array_search.php?path=$1 break;
}
}
Welche der nginx ist konvertierte Apache-Code, der in einer Antwort unten ist, scheint es keine Änderung zu verursachen.
Ich habe platziert auch den list(,$_GET['search_title'], $_GET['search_extra'], $_GET['search_location']) = explode('/',$_GET['path']); // Add more parameters as needed
Code sowohl in dem Index und die after_search PHP-Dateien an der Spitze.
Sorry, ich einen Tippfehler gemacht. Sie sollten den Teil ändern, der array_search.php zu after_search.php sagt. Dann gehe zu "http: // example.com/s/blue + cars/l/Dallas" und schau, ob es funktioniert. Sagen Sie mir, wenn Sie eine 404-Fehlermeldung sehen oder wenn es nach_search.php geladen wird. Um sicherzustellen, dass Ihre after_search.php die Wurzel Ihrer Website sein sollte. –