Поместить ссылки без расширения файла (.php)

Возможно ли настроить Apache, чтобы не показывать расширение файла?

Например: Скажем, у меня есть domain.com/page.php, но в качестве URL-адреса нужно иметь domain.com/page.

Любые идеи?

Ответы

Ответ 1

Это называется перезаписи URL. Мне пришлось использовать его в первый раз недавно, и я использовал этот учебник, чтобы узнать его, надеюсь, что вы тоже найдете его:

Ответ 2

Поместите это ваш .htaccess файл

#turn on url rewriting 
RewriteEngine on

#remove the need for .php extention 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

Это позволяет вам получить доступ к файлам .php без расширения, поэтому ваши ссылки должны читать

href="/somepage"

и это будет направлено на

href="/somepage.php" 

Ответ 3

Существует также MultiViews как опция конфигурации vhost или .htaccess. См. http://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews

С этой страницы:

Эффект MultiViews выглядит следующим образом: если сервер получает запрос для /some/dir/foo, если/some/dir имеет MultiViews включен, а /some/dir/foo не существует, тогда сервер считывает каталог, ищущий файлы с именем foo. *, и эффективно подделывает карту типа, которая называет все эти файлы, назначая им те же типы носителей и кодировки содержимого, которые она имела бы, если бы клиент попросил одного из них по имени. Затем он выбирает наилучшее соответствие требованиям клиента.

Ответ 4

Это действительно просто. Просто создайте файл .htaccess и поместите его в корневой каталог, затем вы можете переопределить URL-адрес для своего собственного.

Используйте это руководство.

Ответ 5

Вам нужна функция веб-сервера, называемая перезаписи URL-адресов. Это приложение поддерживает веб-сервер (apache, IIS, nginx). Как следует из названия, он запрашивает URL-адрес и переписывает его в определенный вами формат.

На www есть много руководств, даже если вы используете решение для совместного размещения, вы все равно можете добавить/изменить файл .htaccess, чтобы сделать это.

Ответ 6

Поместите это ваш .htaccess файл

RewriteEngine On
RewriteRule ^page?$ page.php