Wie nur redirect-urls befindet sich in einem nginx Anzeigen
Ich bin in den Prozess der Umstellung meines Blogs von a.com
zu b.com
. Jetzt möchte ich sagen, dass Google /Lesezeichen, die alle Beiträge (rund 100) verschoben wurden b.com
. Ich will nur die Umleitung der Beiträge und sonst nichts.
Nach der Lektüre über die anzeigen Modul in der nginx-ich habe versucht, die folgenden:
map_hash_bucket_size 128;
map $uri $new {
/post http://b.com/post
# (repeated for all 100 posts)
}
Und wenn ich die folgende Zeile innerhalb der server
block:
rewrite ^ $new redirect;
Wird es umleiten alle 100 Beiträge, aber alle anderen Seiten auf meine Domäne, Fehler mit: 302 Found
.
Hier ist mein ganzer server block in der config:
server {
listen 80;
server_name b.com;
root /my/old/path/;
index index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
# example.com/index gets redirected to example.com/
location ~* ^(.*)/index$ {
return 301 $scheme://$host$1/;
}
# example.com/foo/loads example.com/foo/index.html
location ~* ^(.*)/$ {
try_files $1/index.html @backend;
}
# example.com/a.html gets redirected to example.com/a
location ~* \.html$ {
rewrite ^(.+)\.html$ $scheme://$host$1 permanent;
}
# anything else not processed by the above rules:
# * example.com/a will load example.com/a.html
# * or if that fails, example.com/a/index.html
location /{
try_files $uri.html $uri/index.html $uri @backend;
}
# default handler
# * return error or redirect to base index.html page, etc.
location @backend {
try_files /404.html 404;
}
location ~ \.php$ {
expires off;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_pass php;
}
# apply the rewrite map
rewrite ^ $new redirect;
}
Ich bin am überlegen die Karte stört die try_files
rufen Sie für Lage \
(die ich brauche).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine Lösung gefunden für dein problem auf serverfault:
So ersetzen
mit
Und Sie sollten gut zu gehen
Habe ich nicht in der Lage gewesen, um herauszufinden, wie dies mit den anzeigen, da es immer noch ein string-Modul für mich. Jetzt habe ich gerade all das schreibt Sie in eine Liste in meinem server block (vor allem location-Blöcken), das ist wahrscheinlich sehr langsam. Jetzt wird die Datei sieht wie folgt aus: