Bu çok basit .htaccess'i Nginx'e nasıl dönüştürebilirim?
May 20 2019
Bunu kullanıyorum .htaccessURL'ye sonra her şeyi geçmesi $param, böylece
example.com/news/idolarak PHP gider $_GET['param']='news/id'. Ama Nginx beni her zaman 404 sayfasına atıyor.
Benim .htaccess:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) index.php?param=$1
Nginx'te denediğim şey default.conf:
server {
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html;
location / {
if (!-f $uri){
set $rule_0 1$rule_0;
}
if (!-d $uri){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^(.*) index.php?param=$1;
}
}
}
Yanıtlar
1 MichaelHampton May 20 2019 at 09:08
ifBurada hiç kullanmıyorsunuz ve dosyaların varlığını manuel olarak kontrol etmiyorsunuz. Bu ortak model yerine tarafından ele alınır try_files.
Örneğin:
location / {
try_files $uri $uri/ /index.php?param=$uri;
}
( /Web uygulamanız bozuksa ve URI'de başı işleyemiyorsa, mümkünse web uygulamasını düzeltin veya değilse bu soruyu görün .)
1 SandroBenevides May 21 2019 at 01:15
Şu kuralları kullanarak düzeltebilirim:
server{
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=$1;
}
}
İçinde herhangi bir talimat olmayan konumunuz / {} varsa, onu kaldırın.
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'