Finar.ru
web.finar.ru
video.finar.ru
of-site.ru
Темы для BootstrapNew!

Как в NetCat сгенерить страницы первого уровня вложенности?

то есть страницы вида domain.ru/question_NN.html ?

Казалось бы, никак, так как архитектура системы предполагает, что объекты могут быть добавлены только в разделы. Даже корень сайта domain.ru по-умолчанию является зеркалом страницы domain.ru/Index/ Можно долго спорить о том, насколько это плохо или наплевать, но я лучше расскажу, как все-таки всунуть объекты на 1-й уровень вложенности, если очень хочется.

Если очень хочется, то можно. Но надо понимать, что это костыль, который гарантированно приведет к нехорошим последствиям в виде новых костылей в случае будущего развития сайта. Делать это можно только в том случае, если вы четко представляете себе будущую судьбу сайта.

1) Добавьте в .htaccess следующую строчку:
RewriteRule ^question_([0-9]+).html$ /questions/question_$1.html [L,QSA]
где "questions" - ключевое слово раздела, от которого вы собираетесь избавиться, а "question" - ключевое слово компонента с объектами.

2) В коде компонента всюду замените переменную $FullLink на конструкцию /question_{$f_RowID}.html

3) (опционально) в шаблон макета дизайна, в "Шаблоны вывода навигации" добавить такой код:

$res = preg_match("/\/questions\/question_(\d+?).html/sim", $_SERVER['REQUEST_URI'], $temp);
 if ($res) {
  $redirectTo = "/question_{$temp[1]}.html";   
  ob_end_clean();
  header("Location: ".$redirectTo);
  exit ();
 }

Это чтобы страницы вида /questions/question_77.html редиректились на /question_77.html Делаем это на php, т.к. через .htaccess получается кольцо. Может гуру htaccess подскажут более простой путь, но мне кажется это невозможно сделать через Апач, с учетом RewriteRule из пункта 1).


Антон — 2013-12-04, 22:21

В какое место htacces нужно вставлять правило? У мня сервер выдает 500-ю ошибку..

У меня стоит перед строчкой RewriteCond %{REQUEST_FILENAME} !-f и все работает.

Finar.

Адольф Гитлер — 2014-06-23, 11:36

Для некоторых проектов будет полезно!

Оставить комментарий 


Ваше имя:
->