Категории |
глюк в вопросах и ответахпосле добавления 1 вопроса и ответа все нормально, после добавления второго или редактирования первого, при переходе по ссылке на страницу вопроса выводит главную страницу, при этом вопрос и ответ в блоке выводится. ссылка нормальная но страницы нет да вродибы нормально ЧПУ УРЛ указываете для faq? да все указываю, если после добавления 1 все работает, после редактирования или добавления второго не переходит ни на одну страницу вопроса. версия 2.5.1 оставил одну запись в блоке, через некоторое время опять перестал переходить на страницу вопроса, при чем не редактировал и не добавлял в этот блок ничего нового ссылку на магазин можно? http://net-shkaf.ru/ :-\ и где там вопросы и ответы удалил, написал 2 вопроса с ответами один открывается второй нет так ссылки какие там формируются удалил, написал 2 вопроса с ответами один открывается второй нет Оба открываются! они выводятся везде в блоке на странице faq но если конкретно один вопрос открыть переходит на главную страницу, Евгений если вот так http://net-shkaf.ru/faq.php?faq_id=12 открывается нормально, но ссылки формируются не так, вот то что получается http://net-shkaf.ru/1 они выводятся везде в блоке на странице faq но если конкретно один вопрос открыть переходит на главную страницу, с ссылками на товары вроде как все нормально, ссылки иногда в таком виде http://net-shkaf.ru/faq_id=11 или то что я в поле ЧПУ URL вопроса и ответа вписываю сейчас вопрос 1 http://net-shkaf.ru/1 вопрос 2 http://net-shkaf.ru/2, добавляешь 1 запись все работает, стоит открыт для редактирования её или создать вторую запись, либо только последняя выводится, либо обе не выводятся . так может в ЧПУ к faq указано faq_id=11 или просто 2 в том то и дело что просто 2, я разные чпу указывал всегда одно и тоже, а тот по которому выводится я не понимаю откуда берется я версию обновлял до 2.5.1 могло что нить потеряться может какие файлы перезалить в том то и дело что просто 2, я разные чпу указывал всегда одно и тоже, а тот по которому выводится я не понимаю откуда берется там чпу ссылки кэшируются может кэш заглючил удалить файлы из папки cache\system\ но я скорее всего это уже говорил удалил файлы, добавил две записи все было нормально, но после того как изменил одну из них снова появилась эта же проблема, папка cache\system\ пустая выключил и включил каждый вопрос обнулил кеш, заработало ;D но почему это нужно делать все равно какой то непонятный глюк да все работает до обновления кеша У меня если заполнена ЧПУ ссылка vopros-1.html и в боксе ссылка http://www.domain.tld/vopros-1.html то при клике не выводится с 404 ошибкой, если очищаю поле ЧПУ и чищу кэш, то ссылки вида http://www.domain.tld/faq.php/faq_id/5/question/vopros-1 и они выводятся при клике. У меня если заполнена ЧПУ ссылка vopros-1.html и в боксе ссылка http://www.domain.tld/vopros-1.html то при клике не выводится с 404 ошибкой, если очищаю поле ЧПУ и чищу кэш, то ссылки вида http://www.domain.tld/faq.php/faq_id/5/question/vopros-1 и они выводятся при клике. Терзают меня смутные подозрения, что в .htaccess должны быть прописаны спецефические правила RewriteRule для faq.php дело в .htaccess если он есть - тогда любой адрес заканчивающийся на .html ведет на главную или если такой url к чему то привязан - к тому, к чему привязан. Ну вот часть моего .htaccess с правилами Rewrite В .htaccess за обработку ссылок вида domain.tld/some-address-string.html отвечает директива = $nID; mysql_free_result($result); mysql_close(); $PHP_SELF = '/news.php'; include('news.php'); } else { и вставляем после него mysql_free_result($result); $query = 'select faq_id from ' . TABLE_FAQ . ' where faq_page_url="' . os_db_prepare_input($URI_elements) . '"'; $result = mysql_query($query); if (mysql_num_rows($result) > 0) { $row = mysql_fetch_array($result, MYSQL_ASSOC); $fID = $row['faq_id']; $matched = true; } else { $matched = false; } if ($matched) { $HTTP_GET_VARS['faq_id'] = $fID; $_GET['faq_id'] = $fID; mysql_free_result($result); mysql_close(); $PHP_SELF = '/faq.php'; include('faq.php'); } else { сразу после вставленного кода находится блок mysql_free_result($result); mysql_close(); header('HTTP/1.1 404 Not Found'); $PHP_SELF = '/index.php'; include('index.php'); после него вставляем одну правую фигурную скобку } PS Посмотрев структуру manager.php, я понял, что здесь действительно каждый раз просходит поиск по всей базе строки вида some-address-string.html при использовании ЧПУ. Очень нерационально и неэффективно с точки зрения производительности. Нужен механизм, который по строке адреса сразу же определял к какому роду относится ссылка и отправлял ее прямо в свой обработчик. Значит, нужен маркер типа ссылки в виде префикса news-, item- и т.п., например, category-some-address-string.html Мне представляется, что сортировку можно делать в .htaccess вроде (не уверен в синтаксисt регекса директивы) RewriteRule ^(news-)(.*).html(.*)$ fake-manager-news.php RewriteRule ^(category-)(.*).html(.*)$ fake-manager-category.php Понятно, что manager.php разбивается на отдельные файлы-обработчики. Спасибо помогло ! ;) |
|