Nginx üzerinde çalışan bir WordPress sitem var. Yapılandırmamda böyle bir konum bloğum var:
location / {
try_files $uri $uri/ /index.php?$args;
}
Yapmak istediğim, statik içeriklerle dolu özel bir dizine sahip olmak. Bir URL statik dizindeki bir dosyayla eşleşiyorsa, Wordpress içeriği yerine sunulmasını istiyorum.
Önceden dosyaların isimlerini bilmeyeceğim.
Konum bloğumu olarak değiştirmeyi denedim
location / {
try_files /static/$uri /static/$uri/ $uri $uri/ /index.php?$args;
}
Bu çoğunlukla istediğim şeyi yapar ( static
altında bir dizin olduğu sürece $document_root
), ancak ziyaretçinin gördüğü URL'yi yeniden yazar. Mümkünse bundan kaçınmak istiyorum. Örneğin, https://example.com/catalog.php
yönlendirmekten kaçının https://example.com/static/catalog.php
. Sadece Nginx'in içeriğini ziyaretçilerin haberi olmadan statik olarak sunmasını istiyorum.
Özellikle net olmayabilirim.
WordPress içeriğim içinde yer alıyor /srv/www/mysite/html
ve Nginx yapılandırmam aşağı yukarı böyle:
server {
root /srv/www/mysite/html;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
/home/dave/static
İsteğe bağlı içeriğe sahip başka bir klasörüm var. Diyelim ki adlı bir dosya var catalog.html
. Bir ziyaretçi ziyaret ederse https://example.com/catalog.html
içeriğin /home/dave/static/catalog.html
sunulmasını istiyorum . Eşleşen bir statik dosya yoksa, WordPress içeriğine geri dönmek istiyorum.
İşte bu arada denedim başka bir şey:
server {
root /srv/www/mysite/html;
location / {
root /home/dave/static;
try_files $uri $uri/ @fallback;
}
location @fallback {
try_files $uri $uri/ /index.php?$args;
}
}
Bu yapılandırma çalışmıyor. Statik içeriğin hiçbirini tanımıyor ve yalnızca WordPress içeriğine hizmet ediyor.
/
yanlış yer var. Deneyin:try_files /static$uri $uri $uri/ /index.php?$args;
static
yanlışlığın yanlış olduğu konusunda haklısın . Ne yazık ki, bu yapılandırma hala fiziksel olarak ziyaretçiyi oradan içerik sunmak yerine / statik dizinine yönlendirir.
location ~ \.php$
blok var, ancak static
klasördeki dosyalarla çakışabilecek başka normal ifade konumları var .
location /static { stuff here; }
ve sonra seninlocation / { stuff here; }