Есть локальный проект лежит по адресу http://localhost/myproject
т.е. не в корне localhost, а во вложенной папке myproject.
В директории myproject лежит весь сайт и там имеется файл .htaccess с таким содержимым:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^~(media|image)(_[a-zA-Z0-9\-\_]+)?\/([a-zA-Z0-9\-\_\/]+)(\.(png|jpeg|jpg|gif))?$ gettheme.php?type=$1&name=$3$2.$5 [L,QSA]
В gettheme.php, для теста, напишем просто
file_put_contents('1.txt','dfsfsf'',FILE_APPEND);
Для того, что-бы могли отслеживать, приходит ли запрос к этому файлу или нет.
Ну и, например, есть файл index.html с таким содержимым:
<img src="~media/logo_white.png"/>
Если мы перейдем по адресу http://localhost/myproject/index.html, то будет запрос к файлу gettheme.php и увидим, что была сделана запись в 1.txt.
Тут все хорошо, работает.
Но, если мы сделаем тоже самое, но уже во вложенной директории, то уже не сработает.
Например в localhost/myproject создадим директорию test и в ней создадим файл index.html с аналогичным содержимым, как и у прошлого файла index.html.
После этого перейдем по ссылке http://localhost/myproject/temp/index.html, то уже не будет запроса к файлу gettheme.php. Я понял это по тому, что в файл 1.txt ничего не записалось.
Вопрос почему? Почему он работает только из корня сайта (там где лежит .htaccess)? Подскажите как правильно это сделать, что-бы работало из любого места на сайте. Спасибо.