Пути без расширений в URL

Рейтинг: 2Ответов: 1Опубликовано: 04.04.2015

Видел, что многие сайты делают следующее: http://example.com/feed - и нет никакого расширения. Я понимаю, что можно скрыть через .htaccess, но, если я попытаюсь дописать разные расширения, например, .php - http://example.com/feed.php, то выдает 404 not found. Не обязательно .php, я имею ввиду многие другие... А на некоторых вообще, так - http://example.com/aZWryG - последнее генерируется рендомно, очень удобно, это я видел в коротких ссылках. Если и там попробовать подбирать расширения, то тоже самое - 404.

Скажите, пожалуйста, как этого добиться? Или как заставить .htaccess выдавать ошибку, если дописано расширение?

Ответы

▲ 5Принят

Самый простой способ — полностью перенести роутинг в скрипт, не разводя по несколько скриптов на каждый случай. Вы можете перенаправить абсолютно все запросы через один скрипт, который будет решать, как поступать с запросом дальше, и какой скрипт выполнять.

Если хотите скрыть реальное имя скрипта, то дайте ему какое-нибудь уникальное имя, например c426ce285ea5448f821146836b6586e4.php, и сделайте это имя индексным с помощью .htacceess:

DirectoryIndex c426ce285ea5448f821146836b6586e4.php

Как вариант, можете оставить человеческое имя вроде index.php, но генерировать ошибку скриптом. Внешне отличий не будет (ну, почти).