Rumah > Artikel > pembangunan bahagian belakang > konfigurasi penghalaan nginx membatalkan index.php
Dalam pelayan web, kami sering menghadapi situasi di mana fail atau direktori tertentu tidak dapat ditemui. Pada masa ini, kami sering menggunakan index.html atau index.php sebagai fail lalai secara lalai untuk menyelesaikan masalah ini. Dalam Nginx, index.php ialah salah satu fail lalai.
Namun, kadangkala kami tidak mahu memaparkan index.php dalam URL Ini mempunyai kepentingan tertentu dalam mencantikkan URL atau meningkatkan keselamatan tapak web. Jadi, bagaimana untuk membatalkan index.php dalam Nginx?
1. Ubah suai fail konfigurasi Nginx
Jika anda telah memasang Nginx dan ingin membatalkan index.php, kami perlu mengubah suai fail konfigurasi Nginx. Dalam sistem Ubuntu, laluan fail konfigurasi Nginx ialah "/etc/nginx/sites-available/default".
Cari arahan "indeks" dalam fail, iaitu:
index index.html index.htm index.nginx-debian.html;
Kita perlu memadamkan "index.php" di dalamnya dan menukarnya kepada:
index index.html index.htm index.nginx-debian.html;
Atau anda mahu Biarkan index.php datang ke belakang, kemudian anda boleh meletakkannya di hujung:
index index.html index.htm index.nginx-debian.html index.php
2. Konfigurasikan hos maya Nginx
Dalam Nginx, setiap laman web akan mempunyai hos maya . Hos maya boleh menyediakan persekitaran bebas untuk setiap tapak web yang berbeza supaya fungsi yang berbeza boleh ditetapkan untuk setiap tapak web. Di sini kita perlu mengkonfigurasi dan membatalkan index.php untuk setiap hos maya.
1. Buka fail konfigurasi hos maya Nginx
sudo nano /etc/nginx/sites-available/default
2 Batalkan index.php dalam hos maya
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; # 列出默认文件 index index.html index.htm; # 取消index.php,即移除它 location / { try_files $uri $uri/ =404; } # 处理PHP脚本 location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } # 处理网站资源 location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires 30d; add_header Cache-Control "public, no-transform"; } # 处理网站图标 location /favicon.ico { access_log off; log_not_found off; } }
Dalam fail konfigurasi di atas, kami membatalkan index .php. dan tetapkan fail lalai lain. Pada masa yang sama, dalam blok lokasi, kami menggunakan arahan try_files untuk mengesahkan sama ada URL itu wujud Jika ia tidak wujud, ralat 404 akan dikembalikan.
3. Ubah suai nginx.conf dengan sewajarnya
Dalam Nginx, anda juga boleh membatalkan paparan index.php dengan mengubah suai nginx.conf. Kami perlu menambah arahan dalam blok http:
http { ... # 将index.php从默认文件列表中删除 index index.html index.htm; # 取消index.php location / { try_files $uri $uri/ /index.php?$query_string; } ... }
Dalam konfigurasi di atas, kami mengesahkan bahawa URL wujud dengan mengalih keluar index.php daripada senarai fail lalai, dan kemudian dalam blok lokasi melalui arahan try_files , jika tidak Jika ia wujud, gunakan fail "index.php".
4. Batalkan index.php melalui .htaccess
Jika anda menggunakan Nginx sebagai pelayan web dan ia tidak menyokong fail .htaccess, maka anda boleh menggunakan fail yang serupa: .user. ini. .user.ini ialah fail htaccess yang hanya menyokong PHP. Melaluinya, anda boleh menetapkan maklumat konfigurasi PHP. Simpan sahaja fail berikut sebagai .user.ini:
; PHP settings: cgi.fix_pathinfo = 0 cgi.fix_pathinfo = false cgi.fix_pathinfo = off ; nginx settings: try_files $uri $uri/ /index.php?$query_string; ; User-defined settings: index index.php index.html index.htm
Antaranya, kami mengesahkan sama ada URL itu wujud dengan mencuba arahan fail try_files Jika ia tidak wujud, gunakan fail "index.php". Pada masa yang sama, kami menetapkan fail lalai lain.
5. Ringkasan
Artikel ini memperkenalkan empat kaedah yang mungkin untuk membatalkan index.php dalam nginx. Anda boleh menggunakan satu atau lebih kaedah ini untuk mencapai matlamat anda sendiri berdasarkan keperluan tapak web anda sendiri. Mana-mana kaedah yang anda gunakan, ia sangat mudah dan pantas. Anda boleh menyediakan URL yang lebih mesra pengguna untuk tapak web anda untuk menarik lebih ramai pelawat dan meningkatkan kesan SEO tapak web anda.
Atas ialah kandungan terperinci konfigurasi penghalaan nginx membatalkan index.php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!