Итак, вот что я пытаюсь сделать. У меня простая структура, и я использую mod rewrite для перезаписи URL-адресов, чтобы они указывали на правильные файлы. У меня есть папка процесса, которая находится внутри веб-папки (в веб-папке находятся все фактические файлы сайта, такие как изображения, css и т. Д.).
Это отлично работает, но теперь я пытаюсь получить файл default.php для обработки форм. Файл отлично работает, если я указываю на него форму, но я хочу, чтобы указать форму в соответствующий файл, и если файл там нет, он использует default.php
Формы создаются классом, и действие устанавливается на процесс / {ID OF FORM} .php. Идея состоит в том, что любой может создать форму с использованием класса, и если им не нужно ничего делать, файл default.php обрабатывает форму.
Я понимаю, что я могу просто установить класс формы, чтобы всегда использовать default.php, а затем в файле default.php, я могу проверить, выходит ли соответствующий файл. Если это так, то используйте этот файл, если он не будет продолжать обрабатывать форму, но мне все же интересно узнать, будет ли что-то подобное работать над mod rewrite:
RewriteRule ^process/([^/]*) /web/process/$1 RewriteCond %{DOCUMENT_ROOT}/web/process/$1 !-f RewriteCond %{DOCUMENT_ROOT}/web/process/$1 !-d RewriteRule ^process/([^/]*) /web/process/default.php [L]
Это правило должно сделать это:
RewriteCond %{DOCUMENT_ROOT}web/$0 !-f RewriteRule ^process/[^/]+$ web/process/default.php [L]
Если запрошенный путь не может быть сопоставлен с существующим файлом, его следует переписать в файл по умолчанию.
Обычно вы должны иметь свои вызовы RewriteCond перед RewriteRule. Правило срабатывает, если Conds выполняются.