PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

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

> Найдено сообщений: 5
mobilandser Отправлено: 23 Марта, 2017 - 18:15:47 • Тема: Правильное написание .htaccess • Форум: Вопросы новичков

Ответов: 8
Просмотров: 362
Вот сам файл хтацесс:

AddDefaultCharset UTF-8
ErrorDocument 403 "<BODY><H1>Forbidden</H1>
ErrorDocument 404 /errors/404.html
Options -Indexes
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9\-\_]+)$ ?category=$1 [L]
RewriteRule ^([a-z0-9\-\_]+)/$ ?category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z0-9\-\_]+)/([^/]+)$ ?category=$1&content=$2 [L]
RewriteRule ^([a-z0-9\-\_]+)/([^/]+)/$ ?category=$1&content=$2 [L]
RewriteRule ^.$ ./index.php [QSA,L]

Я уже подумываю может быть мне в ссылке где я выбираю категории - ставить ява скрипт, который будет перенаправлять по нормальной ссылке. Но как это отразиться на индексации сайта в будущем. Сможет ли робот гугла в дальнейшем обойти все эти ссылки для индексации. И как будет работать сайт мап - то же не понятно.
(Добавление)
Спасибо всем за помощь. Проблему решил!
Если кому нужно будет - где формировал ссылки меню нужно было сделать так:

public function tplMenu($category, $id_active){ //Шаблон для вывода меню в виде дерева
if ($id_active == $category['link_page']) $menu = '<li class = "active"><a href="'.$category['link_page'].'"> '.$category['name_menu'].'</a>';
else $menu = '<li><a href="../'.$category['link_page'].'"> '.$category['name_menu'].'</a>';
if(isset($category['childs'])) $menu .= '<ul>'. $this->showCat($category['childs'], $id_active) .'</ul>';
$menu .= '</li>';
return $menu;
}

а до этого было так:


public function tplMenu($category, $id_active){ //Шаблон для вывода меню в виде дерева
if ($id_active == $category['link_page']) $menu = '<li class = "active"><a href="'.$category['link_page'].'"> '.$category['name_menu'].'</a>';
else $menu = '<li><a href="'.$category['link_page'].'"> '.$category['name_menu'].'</a>';
if(isset($category['childs'])) $menu .= '<ul>'. $this->showCat($category['childs'], $id_active) .'</ul>';
$menu .= '</li>';
return $menu;
}
mobilandser Отправлено: 23 Марта, 2017 - 17:23:35 • Тема: Правильное написание .htaccess • Форум: Вопросы новичков

Ответов: 8
Просмотров: 362
Работает только меню, то есть выбор категории, а сами новости не работают.

Правильно был предыдущий вариант, но ребтал так как я хотел.
(Добавление)
еще варианты
mobilandser Отправлено: 23 Марта, 2017 - 13:22:54 • Тема: Правильное написание .htaccess • Форум: Вопросы новичков

Ответов: 8
Просмотров: 362
Согласен, что не верно. Ссылка формируеться в виде /category

Вопрос как нужно ее формировать.
(Добавление)
Так что есть соображения как сделать так что бы менялась только первая часть в урле то есть категория, а вторая часть становилась пустой.
Когда делать в виде: ./index.php&category=balblabla&page=link_page_news - так получается, видимо что-то с хтацесс не так прописано, но такой вид ссылок для поисковиков не правильный да и индексируються такие страници хуже, поэтому и делал ЧПУ.
(Добавление)
Цитата:
Скорее всего на странице новости ссылка формируется не верно


Да нет, там-то она формируется вроди нормально в виде сайт/категория/новость

а вот потом после перехода по другим пунктам меню вместо новости ссылка получается сайт/категория/категория но должна быть сайт/категория/
mobilandser Отправлено: 23 Марта, 2017 - 10:02:09 • Тема: Правильное написание .htaccess • Форум: Вопросы новичков

Ответов: 8
Просмотров: 362
Ну все правильно - у меня все так и организовано.
Но вы видимо не поняли вопрос:
Переходы по меню осуществляються нормально, если только бегать по категориям, но если зайти на уже саму страницу новости то есть ссылка вида: site.ru/category/full_news
то от сюда уже по категориям ходить не получаеться, так как почему-то я попадаю постоянню сюда: site.ru/category/category1 где category1 категория которую я выбрал из пукнта меню. А должно быть вот так: site.ru/category1
Я имею в виду, что когда я бегаю по пунктам меню выбирая категории я всегда должен попадать на site.ru/category или site.ru/category1 или site.ru/category2 и т. д. Но попадаю только сюда: site.ru/category/category1 или site.ru/category/category2 или site.ru/category/category3 и т. д.


в хтаццес указано: ?category=$1&content=$2, то есть $1 - это должна быть только категория, а $2 - уже непосредственно урл на саму новость.
mobilandser Отправлено: 23 Марта, 2017 - 09:16:12 • Тема: Правильное написание .htaccess • Форум: Вопросы новичков

Ответов: 8
Просмотров: 362
Доброго времени суток.
Ребята - такая беда: делаю свою CMS с ЧПУ (человеко-понятный урл)
То есть что бы ссылки вида index.php?category=blablabla&page=bla1bla1 преобразовать в
имя сайты/blablabla/bla1bla1

для этих целей сделал .htaccess такого вида:

AddDefaultCharset UTF-8
ErrorDocument 403 "<BODY><H1>Forbidden</H1>
ErrorDocument 404 /errors/404.html
Options -Indexes
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9\-\_]+)$ ?category=$1 [L]
RewriteRule ^([a-z0-9\-\_]+)/$ ?category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z0-9\-\_]+)/([^/]+)$ ?category=$1&content=$2 [L]
RewriteRule ^([a-z0-9\-\_]+)/([^/]+)/$ ?category=$1&content=$2 [L]
RewriteRule ^.$ ./index.php [QSA,L]

Хотел сделать такую тему:
Изначально когда я захожу по ссылке на какой-то пункт меню - я попадаю:
имя сайта/пункт меню и тут отображаються краткие обзоры статей из категории "пункт меню". Это сделал - тут все вроди хорошо. После того, как я нажал на подробнее я попал на страницу вида: имя сайта/пункт меню/страница
Есть пролема, когда я после этого нажимаю на другой пункт меню, то есть выбираю другую категорию я почему-то попадаю на страницу: имя сайта/пункт меню/другой пункт меню хотя я должен попасть на имя сайта/другой пункт меню

Нужна помощь - никак не могу победить такую штуку. Помогите плиз. Да, кстати, если поможет: все ссылки меню у меня вида /ссылка пункта меню, то есть если смотреть код, то выглядит это так:

public function tplMenu($category, $id_active){ //Шаблон для вывода меню в виде дерева
if ($id_active == $category['link_page']) $menu = '<li class = "active"><a href="'.$category['link_page'].'"> '.$category['name_menu'].'</a>';
else $menu = '<li><a href="'.$category['link_page'].'"> '.$category['name_menu'].'</a>';
if(isset($category['childs'])) $menu .= '<ul>'. $this->showCat($category['childs'], $id_active) .'</ul>';
$menu .= '</li>';
return $menu;
}
(Добавление)
Да и еще одна функция:

public function showCat($data, $id_active){
$string = '';
foreach($data as $item) $string .= $this->tplMenu($item, $id_active);
return $string;
}

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB