Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ЧПУ для сайта
Форумы портала PHP.SU » » Вопросы новичков » ЧПУ для сайта

Страниц (1): [1]
 

1. Mrakobess - 11 Ноября, 2015 - 20:32:49 - перейти к сообщению
Переделываю сайт своей фирмы, заодно и учусь. Сайт уже запущен, но хочу приделать ЧПУ по статье http://forum.php.su/topic.php?forum=33&topic=736. Переделываю на локальном сервере. Но не все получается. Вот что делаю
.httaccess
Спойлер (Отобразить)

index.php
Спойлер (Отобразить)

В папке модули есть файлы, типа main.php, about.php и т.д. И по такому же принципу все эти странички. Меняется только строчка View.
Например содержимое about.php
Спойлер (Отобразить)

Внутри подключаемых файлов идет вперемешку html и php.
Вот форма поиска
Спойлер (Отобразить)

1. Вроде все работает, кроме поиска. Для всех других страниц подключение идет от файла индекс, а при поиске - /modules/search.php. И все инклюды не работают. В файле /modules/search.php инклюды меняю на include('../template/left.php'), но в left.php идет ссылка на файл /inc/left_menu.inc и теперь мне пишет что нет такого файла. Что делать, как исправить? И кстати, в адресной строке уже ссылка идет http://сайт/modules/search.php
2. Почему когда я ввожу любой неверный адрес, мне не кидает 404, а просто пустую страницу.
3. Хочу ЧПУ для каталога, чтобы названия были транслитом. Вытаскивать их из базы данных. Например, сайт/продукт(сейчас это выглядит как сайт/products/1). Как это сделать, сколько не читал, так и не въехал. Везде часть кода напишут, потом говорят - дальше все ясно. Но мне пока не ясно. Если можно, поподробнее напишите.
4. Если видите у меня грубые ошибки или что не так - укажите на это.
2. Faraon-san - 12 Ноября, 2015 - 09:55:37 - перейти к сообщению
1. пункт - скорее всего не правильно указан путь к файлу, сделай в index.php константу с корнем каталога и указывай в каждом пути файлов.
Так же на linux и на windows различаются разделители директорий, используй DIRECTORY_SEPARATOR.
2. пункт - 21 строка index.php прочитай условие которое составил.
3. Mrakobess - 14 Ноября, 2015 - 16:26:55 - перейти к сообщению
Спасибо Faraon-san. Переделал index.php, добавил строку
PHP:
скопировать код в буфер обмена
  1. define ('ROOT', __DIR__.DIRECTORY_SEPARATOR);

Также исправил ошибку с 404, теперь все работает.
Сделал так, чтобы ссылки шли с транслитом.
В форму поиска внес такое исправление
CODE (html):
скопировать код в буфер обмена
  1. <form action="search" method="POST" name="SearchForm" class="input-group" id="search">

Теперь со страниц первого уровня типа Главная, Контакты, Каталог поиск работает. Но если зайти в каталог и перейти на продукцию, т.е. на страницу второго уровня - то поиск не работает. Просто пустое окно и никаких сообщений. Я даже не знаю почему и как отследить ошибку. Ведь на всех страницах файлы подключаются одинаково.
Может быть проблема в form action?
Если нужно, то я более детально распишу ссылки и структуру.
4. Faraon-san - 19 Ноября, 2015 - 10:01:37 - перейти к сообщению
попробуй action="/search"

 

Powered by ExBB FM 1.0 RC1