Saya memasang apache2 pada pelayan Linux tempatan saya. Ia mempunyai hos maya bernama pcts.local dan direktori akarnya ialah /var/www/repos/pcts/. Dalam akar pcts.local ialah fail .htaccess yang cuba menulis semula url untuk memasukkan .php jika tidak diberikan seperti berikut:
http://pcts.local/ -> http://pcts.local/contact -> http://pcts.local/contact.php
Masalahnya ialah, http://pcts.local/contact memberikan ralat 404, tetapi http://pcts.local/contact.php daripada 200.
ServerName pcts.local ServerAdmin webmaster@localhost DocumentRoot /var/www/repos/pcts ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log digabungkan Fail.htaccess berada dalam
/var/www/repos/pcts/RewriteEngine On RewriteBase/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+)$ $1.php [NC,L]Terima kasih terlebih dahulu atas bantuan anda!
Dalam kod anda, REQUEST_FILENAME memerlukan fail dengan sambungan php untuk melakukan penulisan semula.
Cuba ini:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ .php [NC,L]Jika ini adalah konfigurasi lengkap anda, fail
.htaccessanda tidak akan diproses.Anda belum mendayakan
fail.) Secara lalai,.htaccess覆盖。 (即,您尚未启用.htaccess文件的解析。)默认情况下,.htaccessganti untuk direktori tertentu. (Iaitu, anda belum mendayakan penghuraianpenggantian dilumpuhkan.
Tetapi anda juga tidak mendayakan akses ke kawasan sistem fail ini? Pernahkah anda melakukan ini di tempat lain dalam konfigurasi pelayan? !
Anda sepatutnya berada di bahagian容器内有一个相关的seperti ini:
Anda boleh mengehadkan lagi.htaccesspenggantian jika perlu (lihat pautan rujukan di bawah)
Rujukan: https://httpd.apache.org/docs/2.4 /mod/core.html#allowoverride