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

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

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

Author24 — интернет-сервис помощи студентам
Всем привет, извиняюсь за много букв в теме, но напишу подробнее. Я начинающий программист, и вот решил написать свой мини скажем так движок. Сделал себе проект, в денвере все отлично работает, а на хостинге ничего не подключается и не загружается. Думаю что проблема либо в путях, либо в .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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2015, 17:29
Ответы с готовыми решениями:

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

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

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

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

1
Заблокирован
19.07.2015, 20:56 2
Цитата Сообщение от 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
19.07.2015, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2015, 20:56
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru