No-www için Nginx ve no-www www
** 21, net aradı ve şimdiye kadar bu işi alamıyorum aşağıdaki Rackspace cloud üzerinde nginx kullanıyorum.
Www.mysite.com normal mysite.com gitmek istiyorum .seo ve diğer nedenlerden dolayı debug.
Benimvi /etc/nginx/sites-available/www.örnek.com.pkod:
server {
listen 80;
server_name www.example.com example.com;
root /var/www/www.example.com/web;
if ($http_host != "www.example.com") {
rewrite ^ http://example.com$request_uri permanent;
}
Ayrıca denedim
server {
listen 80;
server_name example.com;
root /var/www/www.example.com/web;
if ($http_host != "www.example.com") {
rewrite ^ http://example.com$request_uri permanent;
}
Ben de denedim. İkinci deneme de yönlendirme döngüsü hatası veriyor.
if ($host = 'www.example.com' ) {
rewrite ^ http://example.com$uri permanent;
}
Benim DNS ayarı olarak standart:
site.com 192.192.6.8 A type at 300 seconds
www.site.com 192.192.6.8 A type at 300 seconds
(IPs ve klasörleri örnekler için ve gelecekte insanlara yardım etmek için kullanılmıştır örnek). Ubuntu 11 kullanıyorum.
CEVAP
HTTP Çözüm
documentation, "doğru yolu example.org için ayrı bir sunucu tanımlamak için":
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
...
}
HTTPS Çözüm
Çözüm 14 *...* dahil olmak üzere isteyenler için
server {
listen 80;
server_name www.domain.com;
# $scheme will get the http protocol
# and 301 is best practice for tablet, phone, desktop and seo
return 301 $scheme://domain.com$request_uri;
}
server {
listen 80;
server_name domain.com;
# here goes the rest of your config file
# example
location / {
rewrite ^/cp/login?$ /cp/login.php last;
# etc etc...
}
}
Not: ben aslında dahil https://
benim çözüm beri kullanıyoruz loadbalancers ve bizim https:// sunucu yüksek trafik SSL ödeme sunucu: biz karışımı https:// ve http://.
Nginx sürümünü kontrol etmek için, nginx -v
kullanın.
Nginx yönlendirme ile url Strip-www
server {
server_name www.domain.com;
rewrite ^(.*) http://domain.com$1 permanent;
}
server {
server_name domain.com;
#The rest of your configuration goes here#
}
İKİ sunucu kodları olması gerekir.
Nginx yönlendirme ile url www ekleyin
Eğer ihtiyacın olan şey tam tersi ise, www.domain.com sana domain.com yönlendirmek bu kullanabilirsiniz:
server {
server_name domain.com;
rewrite ^(.*) http://www.domain.com$1 permanent;
}
server {
server_name www.domain.com;
#The rest of your configuration goes here#
}
Tahmin edebileceğiniz gibi, bu tam tersi. ve aynı şekilde ilk örnek çalışır. Bu şekilde, tam olarak SEO işaretleri aşağı, perma Yönlendirme ve hareket edemezsin. Hayır WWW zorlanır ve dizin gösterilen!
Benim kod aşağıda bazılarını daha iyi bir görünüm için gösterilen:
server {
server_name www.google.com;
rewrite ^(.*) http://google.com$1 permanent;
}
server {
listen 80;
server_name google.com;
index index.php index.html;
####
# now pull the site from one directory #
root /var/www/www.google.com/web;
# done #
location = /favicon.ico {
log_not_found off;
access_log off;
}
}
Nasıl nginx önbelleği temizlemek için?...
Nasıl NGİNX bir url yönlendirmek için...
Ayarlama nginx min başına 100 bin hit ...
Nginx 403 tüm dosyalar için yasak...
Neden herhangi bir etki alanı adı için...