Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/30: Рейтинг темы: голосов - 30, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 12.06.2013
Сообщений: 98

.htaccess и относительный путь к файлам

19.07.2015, 17:29. Показов 6326. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, извиняюсь за много букв в теме, но напишу подробнее. Я начинающий программист, и вот решил написать свой мини скажем так движок. Сделал себе проект, в денвере все отлично работает, а на хостинге ничего не подключается и не загружается. Думаю что проблема либо в путях, либо в .htaccess файле. Вопросов у меня возникло много, и не могу найти точных ответов, поэтому обращаюсь к Вам) Спасибо тем, кто все осилит и ответит)

Краткая структура:
  • .htaccess
  • index.php
  • application(каталог, содержит несколько папок views, controllers, modules - шаблоны. контроллеры и модули, папочка class для классов и core где пара файлов, отвечающих за разбор URLа и подключения контроллера)
  • css папочка
  • js папочка
  • images папочка

.htaccess (взял из интернета так как с PERL не знаком совсем)
PHP
1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Файл conf.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Настройки путей:
// Путь от корня сайта, например: Z:/home/d2arena/www
$server_path = $_SERVER['DOCUMENT_ROOT'];
define('server_path',"$server_path");
define('host', 'http://'.$_SERVER['HTTP_HOST'].'/');
// Константы путей до папок с файлами: ядра, классов, контроллеров, модулей, видов соответственно.
define('core_path','/application/core/');
define('class_path','/application/class/');
define('controller_path','/application/controller/');
define('module_path','/application/module/');
define('view_path','/application/view/');
// Константы путей до папок: с css файлами, javascript файлами, картинок
define('css_path','/css/');
define('javascript_path','/js/');
define('images_path','/images/');
// Дополнительные пути для картинок: аватрки пользователей, логотипы команд
define('user_images_path','/images/avatars/users/');
define('team_images_path','/images/avatars/teams/');
?>
index.php
PHP
1
2
3
4
5
6
<?php
//error_reporting(E_ALL);
require_once('configuration.php');
require_once(core_path.'route.php'); // подключение класса route, который анализирует url и будет подключать нужный контроллер
route::start($_SERVER['REQUEST_URI']);
?>
Теперь вопрос, как подключать файлы? На локальном ПК, в денвере, все лежало в корне www/ и тут сразу и index и conf и .htaccess сразу были. Все подключалось. И все пути я всегда прописывал относительно своего index.php так как все подключалось в него.

Например в папочке www/application/class/class_user.php - класс юзер, он использует класс class_db.php по работе с базой данных, и я подключаю его таким образом:
PHP
1
require_once(class_path.'class_db.php'); // /application/class/class_db.php вот таким становится строка запроса и все подклчается.
Пример 2: Чтобы где то подключить css файл мог прописать так же относительно каталога где лежит index.php /css/css_file_name.css и все подключалось.

На сервере я должен положить сайт не в корень, а в /home/web/public/ и только тут мой индекс, и у меня все перестанет работать. Собственно как влияет вот эта добавленная вложенность "/home/web/public/", на .htaccess, и все перенаправления? Ведь он начианает работать с уровня на котором он лежит и он там должен перенаправить на index.php а все пути у меня прописаны относительно данного файла и должны в него подключаться? или я что то не понимаю?

P.S.
Пытался добавлять $_SERVER['DOCUMENT_ROOT'] ко всем путям в файле conf.php, возникала ошибка, циклический редирект.
P.S.S. пытался поменять .htaccess файл
PHP
1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^black-web
    RewriteRule (.*) http://www.black-web.ru/$1 [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://www.black-web.ru/ [R=301,L]
</IfModule>
PHP
1
2
3
4
5
6
RewriteEngine On
#Don't favicon!
RewriteCond %{REQUEST_FILENAME} !^favicon\.ico
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,QSA]
Основной вопрос как правильно все-таки составлять пути до папок, файлов и.т.д. и как их стоит подключать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2015, 17:29
Ответы с готовыми решениями:

Относительный путь к файлам файл не найден
public class Config { private final Properties properties = new Properties(); private final String wayConfig =...

Перенаправление в .htaccess. Как все запросы к файлам в одной папке перенаправить к файлам в другой папке
Здравствуйте, нужно сделать второй сайт, который будет почти копией существующего. оба сайта на одном хосте первый сайт лежит в...

Как правильно прописывать относительный адрес к текстовым файлам?
добрый день. в папке лаба есть ещо двепапки как показано на рисунке в одной екзе файл в другой текстовые файлы(их много) как...

1
Заблокирован
19.07.2015, 20:56
Цитата Сообщение от SEREJA1995 Посмотреть сообщение
.htaccess (взял из интернета так как с PERL не знаком совсем)
Это не перл
В правиле лучше написать /index.php или использовать директиву RewriteBase. Использовать флаг QSA в данном случае нет необходимости. Флаг L – тоже, но его лучше на всякий случай оставить.

Вам нужно определить пути через местоположение index.php внутри index.php, например:
PHP
1
define('PATH',dirname(__FILE__).'/application/');
Можно и через $_SERVER['DOCUMENT_ROOT'], если движок должен работать исключительно в корне сайта, но не в его подкаталогах:
PHP
1
define('PATH',$_SERVER['DOCUMENT_ROOT'].'/application/');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2015, 20:56
Помогаю со студенческими работами здесь

Записать в массив относительный путь с именем файла из папки(не зная полный путь папки)
Наверняка вопрос заезженный, но я не нашел(плохо искал) Нужно из вложенной папки, из директории, откуда запускается макрос вытащить имена...

Относительный путь к бд
Есть 2 проекта которые используют одну и туже бд. Exe-шник первого храниться в папке Server/Server.exe, второго Client/Client.exe. База...

относительный путь к БД
как указать относительный путь к базе данных в C++ Builder 2009 ?

относительный путь
Как получить относительный путь моего проекта ? и как получить относительный путь для папки resourses? в resourses ложатся файлы...

Относительный путь в LESS
Здравствуйте! Возникла такая проблема: Пишу в less-файле, к примеру, следующее: background: url(&quot;/../img/background.png&quot;); , а на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru