Sto cercando di riscrivere /index.html a/per scopi SEO (stupidi motori di ricerca che confondono index.html con/e penalizza per contenuti duplicati) - anche per riconciliare i dati di analisi web .nginx /index.html to/rewrite
Ho provato ogni soluzione che ho trovato su stackoverflow, la documentazione di nginx, ecc. E non ho avuto successo. Sto pensando che devo avere qualche altro problema di configurazione o qualcos'altro che sia doloroso. Questa è la mia prima installazione di nginx, usata per Apache e IIS !!
Ecco il mio default.conf:
server {
listen 80;
server_name web.local;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
Ecco il mio virtual.conf (commentata sezione era il mio tentativo più recente - quando non è commentato dà un 301 Moved Permanently di errore quando si tenta di accedere a www .dominio.com/index.html):
server {
listen 80;
server_name www.domain.com;
location/{
root /var/www/html/domain.com;
index index.html;
#if ($request_uri = /index.html) {
# rewrite^http://www.domain.com permanent;
#}
}
}
server {
listen 80;
server_name domain.com;
rewrite ^/(.*) http://www.domain.com/$1 permanent;
}
HTTP di risposta intestazioni per soluzione di cobaco:
URL:
http://www.domain.com
http/1.1 301 moved permanently
server: nginx/1.2.8
date: Thu, 16 May 2013 01:42:58 GMT
content-type: text/html
content-length: 184
connection: keep-alive
location: http://domain.com/
Redirecting URL:
http://domain.com/
http/1.1 301 moved permanently
server: nginx/1.2.8
date: Thu, 16 May 2013 01:42:58 GMT
content-type: text/html
content-length: 184
connection: keep-alive
location: http://www.domain.com/
Ho pensato che questa linea potrebbe causare problemi: "location = /index.html {return 301 $ scheme: //domain.com/;}" così ho aggiunto www. dopo "schema: //" - fammi sapere se questa è una brutta cosa da fare! Ciò ha provocato le seguenti intestazioni di risposta HTTP:
URL:
http://www.domain.com
http/1.1 301 moved permanently
server: nginx/1.2.8
date: Thu, 16 May 2013 01:42:58 GMT
content-type: text/html
content-length: 184
connection: keep-alive
location: http://www.domain.com/
Redirecting URL:
http://www.domain.com/
http/1.1 301 moved permanently
server: nginx/1.2.8
date: Thu, 16 May 2013 01:42:58 GMT
content-type: text/html
content-length: 184
connection: keep-alive
location: http://www.domain.com/
Dopo un po 'di più ritocchi, la seguente configurazione fa quello che voglio fare, ma non è l'ideale a causa del if. Eventuali suggerimenti?
server {
server_name www.domain.com;
root /var/www/html/domain.com;
index index.html;
if ($request_uri = /index.html) {
return 301 http://www.domain.com/;
}
#location = /index.html {
# return 301 $scheme://www.domain.com/;
#}
}
server {
listen 80;
server_name domain.com;
return 301 $scheme://www.domain.com$request_uri;
}
grazie, felice che funzioni bene! :) – auralsun