Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Tidak Boleh Menyembunyikan Sambungan Fail .php Saya dengan .htaccess?

Mengapa Saya Tidak Boleh Menyembunyikan Sambungan Fail .php Saya dengan .htaccess?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 18:08:02294semak imbas

Why Can't I Hide My .php File Extension with .htaccess?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn