Перенаправлять любые запросы к несуществующим файлам в один файл php

#.htaccess

#.htaccess .htaccess #.htaccess

Вопрос:

Мне нужно перенаправить любые запросы к несуществующим файлам в один php-файл. Я пытаюсь заставить работать входящие SMS nexmo.

У меня нет никакого опыта работы с .htaccess, поэтому я обращаюсь к сообществу..

Спасибо за вашу помощь.

Ответ №1:

Пожалуйста, обратите внимание, что вы должны были найти решение самостоятельно, по крайней мере, попытавшись решить свою задачу самостоятельно. Есть много примеров того, что вы задаете в ответах здесь, на SO, а также есть отличная документация по модулю перезаписи apache в два клика. Поэтому «у меня нет никакого опыта» не является веской причиной не попробовать самому, а просто попросить у нас решение. Пожалуйста, учтите это.

В любом случае, вот это решение, о котором вы просите:

 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ /path/to/file.php [END]
  

В случае, если вы получаете внутреннюю ошибку сервера (http status 500), используя приведенное выше правило, есть вероятность, что вы используете очень старую версию http-сервера apache. В этом случае вы увидите четкую подсказку о неподдерживаемом [END] флаге в файле журнала ошибок вашего http-сервера. Вы можете либо попробовать обновить, либо использовать более старый [L] флаг, вероятно, в этой ситуации он будет работать так же, хотя это немного зависит от ваших настроек.

Это правило будет работать аналогично в конфигурации хоста http-серверов или внутри файла динамической конфигурации (файл «.htaccess»). Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на http-хосте. В случае, если вы используете файл динамической конфигурации, вам нужно позаботиться о том, чтобы его интерпретация вообще была включена в конфигурации хоста и чтобы он находился в DOCUMENT_ROOT папке хоста.

И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования файлов динамической конфигурации («.htaccess»). Эти динамические конфигурационные файлы усложняют работу, часто являются причиной неожиданного поведения, их трудно отлаживать, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к конфигурации хоста реальных http-серверов (читай: действительно дешевых поставщиков услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).