Тестував на OpenServer зі стандартними налаштуваннями.
В мене Apache2.4 на якому налаштований VirtualHost.
Зможете скинути свій тестовий проект?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Повідомлення користувача tom_1991
Сторінки 1
Тестував на OpenServer зі стандартними налаштуваннями.
В мене Apache2.4 на якому налаштований VirtualHost.
Зможете скинути свій тестовий проект?
В мене це спрацьовує
RewriteEngine On RewriteBase /basic/ RewriteCond %{REQUEST_FILENAME} !/api/index\.php RewriteRule ^(.*)$ /api/index.php
А ось в даному випадку в мене з'являється
Not Found
The requested URL /api/index.php was not found on this server.
У Вас використовуєтся VirtualHost? Які налаштування сервера? Можете скинути свій тестовий проект будь-ласка?
Може це в мене проблема з налаштуванням сервера... Я вже не знаю що думати.
Таке потрібно?
RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ /api/index.php
Дякую за відповідь, але таке я спробував з самого початку. В такому випадку, в браузері відкривається той файл, який є в кінці запиту. Тобто, якщо я пишу такий запит
test-site.com/basic/api/src/db/dbconnect.php
то вікривається пуста сторінка (логічно, так як там йде підключення с БД), а потрібно щоб відкривалась test-site.com/basic/api/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
Сторінки 1