Ich bin ziemlich neu bei Nginx, also bitte, ertragen Sie mit mir.Nginx leitet alle Anfragen von einem Unterverzeichnis in ein anderes Unterverzeichnis um. Root
Ich versuche, alle Anfragen von einem Unterverzeichnis (Store) auf den Stamm eines anderen Unterverzeichnisses (Handel) umzuleiten. Sehen Sie meinen Fortschritt unten. Die Site im Ziel-Unterverzeichnis (trade) ist eine Magento-Site, also sind das die meisten der aktuellen Regeln.
server {
server_name example.com *.example.com;
root /usr/share/nginx/html/example.com/public_html;
index index.php index.html index.htm;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log;
location/{
try_files $uri $uri/ /index.html;
}
location /trade/ {
index index.html index.php;
try_files $uri $uri/ @handler;
expires 30d;
}
location ~ /store {
rewrite /trade permanent;
}
location ~ ^/trade/(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { internal; }
location /trade/var/export/ { internal; }
location /. { return 404; }
location @handler { rewrite//trade/index.php; }
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Der Abschnitt I umleiten bin mit ist die folgende:
location ~ /store {
rewrite /trade permanent;
}
Dies funktioniert für example.com/store aber nicht example/store/index.php oder andere uri mit args. Ich habe das Gefühl, dass der PHP-Datei-Abschnitt unten die Verarbeitung überschreibt. Deshalb habe ich den ~ vor den Ladenort gestellt, wie die Dokumentation here besagt, dass dies zuerst verarbeitet wird. Stoppen oder weitermachen?
Ich habe über das Verschachteln einer PHP-Regel gelesen, aber ich habe das vergeblich versucht.
Ich würde jede Hilfe sehr schätzen.
welche Art von Argumenten? –
Eine Beispiel-URL wäre http://www.example.com/store/index.php?page=shop.product_details&flypage=flypage.tpl&category_id=365&product_id=8025&option=com_virtuemart&Itemid=101 – user1214769