Тема: .htaccess: Page not Found при перенаправленні на index.php
Мені необхідно що б всі запити до існуючих і неіснуючих каталогів/підкаталогів і файлів сайту, перенаправлялися до basic/api/index.php.
Коли я пишу
test-site.com/basic/api //або test-site.com/basic/api/index.php
то відкривається Hello World в basic/api/index.php як мені і потрібно.
АЛЕ, коли я вписую наступні посилання:
test-site.com/basic/api/src/
test-site.com/basic/api/src/db/
test-site.com/basic/api/src/db/dbconnect.php
test-site.com/basic/api/src/app/
test-site.com/basic/api/src/app/routes.php
test-site.com/basic/api/src/bootstrap/
test-site.com/basic/api/src/bootstrap/app.php
test-site.com/basic/api/non-existent-folder/ //неіснуюча директорія
test-site.com/basic/api/non-existent-file.php //неіснуючий файл
то у браузері відображається Page Not Found, замість Hello World в basic/api/index.php!
Зрозуміло, що справа в .htaccess, але вже тиждень не можу його налаштувати подібним чином, тому прошу допомоги, так як ніхто не міг до цього вирішити цю задачу...
Скрін проблеми
.htaccess
RewriteEngine On
RewriteBase /basic/
RewriteCond %{REQUEST_FILENAME} !/api/index\.php
RewriteRule ^(.*)$ api/index.php
Структура проекту
Логи при переході на test-site.com/basic/api/src/db/dbconnect.php (приклад)
[Mon Mar 19 17:28:30.697115 2018] [rewrite:trace3] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11e7590/initial] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] strip per-dir prefix: C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/api/src/db/dbconnect.php -> api/src/db/dbconnect.php
[Mon Mar 19 17:28:30.697115 2018] [rewrite:trace3] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11e7590/initial] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] applying pattern '^(.*)$' to uri 'api/src/db/dbconnect.php'
[Mon Mar 19 17:28:30.697115 2018] [rewrite:trace2] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11e7590/initial] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] rewrite 'api/src/db/dbconnect.php' -> 'api/index.php'
[Mon Mar 19 17:28:30.697115 2018] [rewrite:trace3] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11e7590/initial] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] add per-dir prefix: api/index.php -> C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/api/index.php
[Mon Mar 19 17:28:30.697115 2018] [rewrite:trace2] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11e7590/initial] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] trying to replace prefix C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/ with /basic/
[Mon Mar 19 17:28:30.697115 2018] [rewrite:trace1] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11e7590/initial] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] internal redirect with /basic/api/index.php [INTERNAL REDIRECT]
[Mon Mar 19 17:28:30.698115 2018] [rewrite:trace3] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11ef7e8/initial/redir#1] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] strip per-dir prefix: C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/api/index.php -> api/index.php
[Mon Mar 19 17:28:30.698115 2018] [rewrite:trace3] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11ef7e8/initial/redir#1] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] applying pattern '^(.*)$' to uri 'api/index.php'
[Mon Mar 19 17:28:30.698115 2018] [rewrite:trace1] [pid 11760:tid 1192] mod_rewrite.c(468): [client 127.0.0.1:64697] 127.0.0.1 - - [test-site.com/sid#dd1c90][rid#11ef7e8/initial/redir#1] [perdir C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/] pass through C:/Program Files (x86)/Apache2.4/htdocs/test-site.com/www/basic/api/index.php