Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > пхп на локальном хостинге без index.php


Автор: mstdmstd 28.11.2012, 19:39
Всем привет,
У меня пхп на локальном хостинге нормально работает если ссылка содержит в себе index.php :
Код

http://local-site.com/index.php/url


Ссылка http://local-site.com/url выдает ошибку 
Код

Object not found!

Настройка хостинга local-site.conf имеет вид :
Код


<virtualhost  127.0.0.20 >
  serveradmin ya@ya.ya
  servername local-site.com

  # indexes + directory root.
  directoryindex index.php
  documentroot    /WWW/site/
  <directory /WWW/site>
    AllowOverride None
    Order Deny,Allow
  </directory>
  # logfiles
  errorlog /WWW/site/log/error.log
  customlog /WWW/site/log/access.log combined
</virtualhost>


Я полагал что строка  
Код

 directoryindex index.php 
должна мне помочь - но это не так.
Apache/2.2.22 (Unix) PHP5/5.3.10 with Suhosin-Patch , Apache 2.0 Handler 

Автор: Medka 28.11.2012, 19:53
в файле .htaccess - добавить directoryindex index.php

Автор: skyboy 28.11.2012, 21:41
Цитата(mstdmstd @  28.11.2012,  18:39 Найти цитируемый пост)
directoryindex 

означает только, что если УРЛ имеет целью папку — будет неявно вызван index.php
вот, http://local-site.com/url — есть ли файл с именем url в Document_Root?

Автор: mstdmstd 30.11.2012, 09:12
Это проект CodeIgniter 2, там изначально файла  .htaccess не было.
Я добавил файл с кодом:
Код

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  directoryindex index.php 
</IfModule>


Но проблема осталась : урл с index.php работает, без него нет.

Автор: MoLeX 30.11.2012, 09:23
в мануале CI написано что надо сделать http://ellislab.com/codeigniter/user-guide/general/urls.html
Цитата(.htaccess)

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Автор: mstdmstd 30.11.2012, 10:39
Спасибо за ссылку,  я CI занимаюсь дня 3 - еще не успел все перечитать.
Но это не помогло - проблема осталась.

Автор: TwisT_X 30.11.2012, 11:04
mstdmstd, откройте конфиг:
application/config/config.php

Найдите там:
Код

$config['index_page'] = "index.php";


И оставьте пустое значение:
Код

$config['index_page'] = "";

Автор: skyboy 30.11.2012, 11:07
в логе ошибок что?

Автор: mstdmstd 30.11.2012, 11:42
Сделал в конфиге :
Код

$config['index_page'] = "";

Не помогло.

В логе ошибок:
Код

 File does not exist: /_SymfonyProjects/wavendon-props/admin


Это  на урл вида
Код

 local-wavendon-props.com/admin/user/edit/

Автор: TwisT_X 30.11.2012, 12:26
mstdmstd, а вы читали вообще про роуты в CI?
И отмените все предыдущие действия. То что я посоветовал работает 100%.

Автор: mstdmstd 30.11.2012, 14:13
Вы имееие в виду вернуть
Код

$config['index_page'] = 'index.php';


? Сделал.

Доку читал и еще раз перечитал и не пойму в чем подвох.
В ссылке 
Код

http://local-wavendon-props.com/index.php/admin/user/edit/1

admin - подкатолог в application/controllers/ (как описано тут http://cidocs.ru/210/general/controllers.html )
user - класс контрола
edit - имя функции 
1 - параметр 

Что  не так ?

Автор: TwisT_X 30.11.2012, 15:08
mstdmstd, нет, то оставьте как было!
Верните остальное, что советовали другие. Должно работать!
Должна быть папка admin в application/controller
Как-то так: application/controller/admin/
И в ней создать контроллер user.
И тогда если все это будет сделано правильно и грамотно, то если наберем в адресе:
application/admin/user
то попадем на контролер user функцию index().

Автор: mstdmstd 1.12.2012, 15:28
Цитата(TwisT_X @ 30.11.2012,  15:08)
mstdmstd, нет, то оставьте как было!
Верните остальное, что советовали другие. Должно работать!
Должна быть папка admin в application/controller
Как-то так: application/controller/admin/
И в ней создать контроллер user.
И тогда если все это будет сделано правильно и грамотно, то если наберем в адресе:
application/admin/user
то попадем на контролер user функцию index().

Так все и есть. И ссылка с index.php - работает нормально.
Я думаю что если бы была проблема то и не работало и с index.php ? Может ли быть проблема в ннастройках хостинга?

Автор: MoLeX 1.12.2012, 16:46
вся соль в htaccess, похоже он у вас не работает.
И потом что за сервер? Сам ставил, или сборка какая-то.

Автор: mstdmstd 2.12.2012, 08:20
Как я писал в начале :
Код

Apache/2.2.22 (Unix) PHP5/5.3.10 with Suhosin-Patch , Apache 2.0 Handler 

Все это родные пакеты Alt-linux 6.0.1.
И только щас заметил что команда  
Код

ls -l
 не отображает файл .htaccess. Это так и надо?

Автор: Guedda 2.12.2012, 09:42
Попробуй ls -la.
Да и может у тебя вообще нет .htaccess в таком случае?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)