Dalam Laravel, pseudo-statik (juga dikenali sebagai penulisan semula URL) ialah teknik biasa yang digunakan untuk menjadikan URL halaman lebih cantik dan mudah difahami. Walaupun pseudo-statik membawa banyak kelebihan, dalam beberapa kes kita mungkin perlu mematikan pseudo-statik. Artikel ini akan meneroka cara untuk mematikan statik pseudo dalam Laravel, dan kemungkinan kesan tingkah laku ini.
Apakah itu pseudo-statik?
Pseudostatic ialah teknologi pelayan web yang menukar URL dengan parameter dinamik kepada URL dengan penampilan statik. Sebagai contoh, kami mungkin menukar URL dinamik seperti "/article.php?id=123" kepada URL statik "/article/123". Ini sangat meningkatkan kebolehbacaan dan kemesraan enjin carian URL.
Dalam Laravel, kami boleh mendayakan pseudo-statik dengan menggunakan fail ".htaccess" atau konfigurasi Nginx. Tetapan ini akan membolehkan kami menggunakan URL statik seperti "/article/123" dan bukannya URL dinamik seperti "/article.php?id=123".
Mengapa matikan pseudo-statik?
Walaupun pseudo-statik membawa banyak kelebihan, kadangkala kita mungkin perlu melumpuhkannya. Berikut ialah beberapa sebab yang mungkin untuk mematikan pseudo-statik.
Dalam sesetengah kes, konfigurasi pseudo-statik mungkin tidak betul. Ini boleh menyebabkan pengguna melihat halaman ralat 404 atau isu lain. Mematikan pseudo-statik boleh membantu kami menyelesaikan masalah sedemikian.
Mendayakan pseudo-statik mungkin mempunyai kesan pada prestasi sistem. Ini mungkin menyebabkan beban tambahan kerana pelayan web perlu memproses URL statik dan menulis semula URL tersebut ke dalam URL dinamik. Mematikan pseudo-statik boleh meningkatkan prestasi sistem.
Dengan pseudo-statik didayakan, jika kami cuba mencipta folder bernama "artikel" dalam direktori akar dokumen web, Masalah mungkin timbul. Memandangkan pengecaman pseudo-statik URL seperti "/article/123" ialah laluan dinamik, kami mungkin tidak dapat mengakses fail dalam folder ini.
Bagaimana untuk mematikan pseudo-statik?
Cara untuk mematikan pseudo-statik dalam Laravel bergantung pada pelayan web yang kami pilih. Di bawah ini kita akan membincangkan cara mematikan pseudo-statik dalam Apache dan Nginx masing-masing.
Matikan pseudo-statik dalam Apache
Jika anda ingin mematikan pseudo-statik dalam Apache, kami perlu membuka fail ".htaccess" dan mengubah suai kandungannya.
Dalam Laravel, fail ".htaccess" kami biasanya kelihatan seperti ini:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
Untuk mematikan pseudo-statik, kita perlu mengulas baris terakhir "RewriteRule ^ index.php [L ] ” dan kemudian mulakan semula pelayan Apache.
Matikan pseudo-statik dalam Nginx
Jika anda ingin mematikan pseudo-statik dalam Nginx, kami boleh melakukannya dengan mengubah suai fail konfigurasi pelayan. Dalam Laravel, fail yang biasanya terletak di "/etc/nginx/sites-available" dinamakan "laravel" atau "laravel.conf".
Kita perlu mengedit fail dan mencari baris berikut:
location / { try_files $uri $uri/ /index.php?$query_string; }
Untuk mematikan pseudo-statik kita perlu menggantikannya dengan yang berikut:
location / { try_files $uri $uri/ /index.php$is_args$args; }
Kemudian kita perlu untuk memulakan semula pelayan Nginx.
Nota
Mematikan pseudo-statik boleh menjadikan URL dinamik lebih terdedah kepada penggodam. Contohnya, jika kita mematikan pseudo-statik dan menggunakan URL dinamik seperti "/article.php?id=123", penggodam boleh mengeksploitasi URL ini dengan lebih mudah untuk serangan. Oleh itu, sebelum mematikan pseudo-statik, kita harus menilai kemungkinan risiko dan memutuskan sama ada ia berbaloi menggunakan URL dinamik.
Kesimpulan
Mematikan pseudo-statik dalam Laravel mungkin tidak sebiasa menghidupkannya, tetapi ia perlu dalam beberapa kes. Sama ada kita memutuskan untuk mematikan atau mendayakannya, kita harus menilai dengan teliti kemungkinan risiko dan faedahnya dan membuat keputusan berdasarkan kes demi kes.
Atas ialah kandungan terperinci laravel mematikan pseudo-statik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!