Необходимо, чтобы в подпапке все запросы уходили на index.php. Структура запросов планируется такая: site.ru/cabinet/show/post/
Есть папка на сайте: site.ru/cabinet/. В ней лежит .htaccess:
RewriteEngine on
RewriteBase /cabinet/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^([^.]+[^./])$ $1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -l
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Index.php такой:
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<head>
<title>Проверка</title>
<link rel="stylesheet" type="text/css" href="files/screen.css">
<link rel="stylesheet" type="text/css" href="files/main.css">
</head>
<body>
<?
$mailmes="Проверка";
$send_to = "test@mail.ru";
$subject = "Проверка";
$headers = "From: cabinet <test@mail.ru> \n";
$headers .= "Content-type: text/html; charset=UTF8\r\n";
$send = mail($send_to, $subject, $mailmes, $headers);
?>
</body>
</html>
Проблема в том, что при каждом запросе на странице обрабатывается скрипт. Например, в приведенном выше index.php письмо отправляется 3 раза. Один раз на запрос самой страницы, и еще два раза на подключения двух файлов CSS.
Понимаю, что это происходит из .htaccess, а конкретно из-за строчек:
RewriteRule ^.*$ [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Но если убрать первую строку, то скрипт не может обработать такой вот запрос: site.ru/cabinet/show/, сразу выходит 404 страница. С текущей конфигурацией .htaccess все работает нормально, не считая повторяющихся обработок скрипта.
Вопрос. Как верно настроить .htaccess, чтобы скрипт выполнялся всего один раз на запуск страницы, как и положено?