Что такое отключение расширения? Это APACHE или PHP-установка? Как можно настроить веб-сервер, где расширение .php не требуется? Есть ли опция, которая сделает URL как www.example.com/page.php и www.example.com/page?
Это переписывание URL-адресов через Apache: http://www.addedbytes.com/apache/url-rewriting-for-beginners/
У Apache также есть параметр MultiViews
который будет обслуживать domain.com/index.*
как domain.com/index
, domain.com/example.*
как domain.com/example
и т. Д.
Я иногда сталкивался с проблемами, когда MultiViews
превосходит правила mod_rewrite
, поэтому я стараюсь отключить его.
Ознакомьтесь с некоторыми статьями из A List Apart по этой теме: вы используете Apache (в вашем случае) для настройки ReWriteRule, а затем у вас есть PHP, анализирующий URL-адрес для получения правильной информации. (опять же, в вашем случае. Вы можете сделать это со многими языками и http-серверами)
brianreavis правильный. Вот пример вашего файла .htaccess:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php
Я просто бросаю все на PHP и разбираю его, но я хочу туда:
.htaccess
RewriteEngine On RewriteRule !\.(js|ico|gif|jpg|png|css)$ @frontend.php
Я использую это в своем .htaccess
<Files ~ "^[^.]+$">
ForceType application/x-httpd-php5
</Files>
Таким образом, я могу удалить все расширения (.php) из своих файлов, и он все равно будет работать.
Я использую $ _SERVER ['PATH_INFO'] для извлечения оставшейся части пути в качестве параметров. Например / page / param1 / param2, где страница является фактическим файлом php.