Menyembunyikan Sambungan Fail .php dengan .htaccess: Petua Penyelesaian Masalah
Walaupun mengikut arahan untuk menyembunyikan sambungan fail .php menggunakan .htaccess, anda sedang menghadapi kesukaran. Mari kita siasat isu ini dan berikan penyelesaian yang disemak.
Kod .htaccess awal anda cuba menulis semula URL dalam direktori "folder" tertentu. Walau bagaimanapun, ia kelihatan tidak lengkap, kerana ia tidak mempunyai arahan RewriteCond yang sepadan. Untuk menangani perkara ini, kod yang diubah suai berikut harus berfungsi:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^folder/([a-zA-Z_\-0-9]+)/?$ /folder/.php </IfModule>
Barisan RewriteCond memastikan bahawa peraturan hanya digunakan jika fail yang diminta tidak wujud (iaitu, ia bukan fail statik).
Selain itu, untuk mengendalikan pelbagai senario dengan betul, pertimbangkan untuk menggunakan kod .htaccess yang lebih komprehensif seperti yang dicadangkan dalam jawapan yang diterima:
RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/folder/ [R=301,L] # Redirect external .php requests to extensionless URL RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/folder/ [R=301,L] # Resolve .php file for extensionless PHP URLs RewriteRule ^([^/.]+)$ .php [L]
Kod ini bukan sahaja menyembunyikan sambungan .php tetapi juga mengendalikan garis miring, permintaan .php luaran dan menyelesaikan fail .php secara dalaman untuk URL tanpa sambungan.
Ingat, sahkan bahawa fail .htaccess diletakkan dalam direktori akar projek anda dan semak kebenaran fail untuk memastikan ia boleh dibaca oleh pelayan web.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyembunyikan Sambungan Fail .php Saya dengan .htaccess?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!