bitrix чпу

Sysfaray

Гуру форума
Регистрация
7 Окт 2007
Сообщения
175
Реакции
88
site.ru/katalogi
site.ru/katalogi/
_www.site.ru/katalogi
_www.site.ru/katalogi/
Чтоб вели на одну и туже страницу (_www.site.ru/katalogi/).
 
Код:
RewriteEngine on
RewriteRule ^/?katalogi$ /katalogi/ [R=301,L]
Какой вопрос - такой ответ.
 
а если таких страниц массив.
Переношу сайт на битрикс, хотелось бы оставить переходы по старым страницам.
"Какой вопрос - такой ответ."
в чём моя ошибка , вызывающая такой сарказм.
.htaccess
PHP:
<IfModule mod_rewrite.c> 
  Options +FollowSymLinks 
  RewriteEngine On 
  # редирект host.ru -> www.host.ru 
  RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
  # редирект /news/123 -> /news/123/ 
  RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$ 
  RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L] 
  # подключение ЧПУ битрикса 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-l 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ 
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] 
</IfModule>
urlrewrite.php
PHP:
<?
$arUrlRewrite = array(
	array(
		"CONDITION"	=>	"#^/catalog/([a-zA-Z0-9_]+)(/*)(.*)?#",
		"RULE"	=>	"SECTION_CODE=$1",
		"ID"	=>	"",
		"PATH"	=>	"/catalog/list.php",
	),
	array(
		"CONDITION"	=>	"#^/types_of_printing/([\\w\\d_]+)(/)?#",
		"RULE"	=>	"code=$1",
		"ID"	=>	"",
		"PATH"	=>	"/types_of_printing/detail.php",
	),
	array(
		"CONDITION"	=>	"#^/(.*)/(.*)?#",
		"RULE"	=>	"ELEMENT_CODE=$1",
		"ID"	=>	"",
		"PATH"	=>	"/catalog/detail.php",
	),
	array(
		"CONDITION"	=>	"#^/products/([\\w\\d]+)(/)?#",
		"RULE"	=>	"code=$1",
		"ID"	=>	"",
		"PATH"	=>	"/products/detail.php",
	),
	array(
		"CONDITION"	=>	"#^/e-store/books/reviews/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:news",
		"PATH"	=>	"/e-store/books/reviews/index.php",
	),
	array(
		"CONDITION"	=>	"#^/communication/forum/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:forum",
		"PATH"	=>	"/communication/forum/index.php",
	),
	array(
		"CONDITION"	=>	"#^/e-store/xml_catalog/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:catalog",
		"PATH"	=>	"/e-store/xml_catalog/index.php",
	),
	array(
		"CONDITION"	=>	"#^/communication/blog/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:blog",
		"PATH"	=>	"/communication/blog/index.php",
	),
	array(
		"CONDITION"	=>	"#^/service/(.*)/(.*)?#",
		"RULE"	=>	"ELEMENT_CODE=$1",
		"ID"	=>	"",
		"PATH"	=>	"/service/detail.php",
	),
	array(
		"CONDITION"	=>	"#^/content/articles/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:news",
		"PATH"	=>	"/content/articles/index.php",
	),
	array(
		"CONDITION"	=>	"#^/content/gallery/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:photogallery_user",
		"PATH"	=>	"/content/gallery/index.php",
	),
	array(
		"CONDITION"	=>	"#^/personal/lists/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:lists",
		"PATH"	=>	"/personal/lists/index.php",
	),
	array(
		"CONDITION"	=>	"#^/e-store/books/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:catalog",
		"PATH"	=>	"/e-store/books/index.php",
	),
	array(
		"CONDITION"	=>	"#^/content/photo/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:photogallery",
		"PATH"	=>	"/content/photo/index.php",
	),
	array(
		"CONDITION"	=>	"#^/content/news/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:news",
		"PATH"	=>	"/content/news/index.php",
	),
	array(
		"CONDITION"	=>	"#^/club/gallery/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:photogallery_user",
		"PATH"	=>	"/club/gallery/index.php",
	),
	array(
		"CONDITION"	=>	"#^/content/faq/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:support.faq",
		"PATH"	=>	"/content/faq/index.php",
	),
	array(
		"CONDITION"	=>	"#^/club/forum/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:forum",
		"PATH"	=>	"/club/forum/index.php",
	),
	array(
		"CONDITION"	=>	"#^/services/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:news",
		"PATH"	=>	"/services/index.php",
	),
	array(
		"CONDITION"	=>	"#^/sef_test/#",
		"RULE"	=>	"",
		"ID"	=>	"",
		"PATH"	=>	"/index.php",
	),
	array(
		"CONDITION"	=>	"#^/club/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:socialnetwork",
		"PATH"	=>	"/club/index.php",
	),
	array(
		"CONDITION"	=>	"#^/news/#",
		"RULE"	=>	"",
		"ID"	=>	"bitrix:news",
		"PATH"	=>	"/news/index.php",
	),
);
?>
Всё работает , кроме адреса вида "_site.ru/katalogi" данный адрес вызывает ошибку 404.
+ всплывает indexp.php чего бы не хотелось.
 
Еще бы он не выдавал, в urlrewrite нет никаких katalogi.
Битриксом не пользуюсь, но в соответствии с условием, нужно добавить приблизительно такое правило:
PHP:
    (
        "CONDITION"    =>    "#^/katalogi/?#",
        "RULE"    =>    "",
        "ID"    =>    "",
        "PATH"    =>    "/catalog/list.php (здесь адрес стр списков каталогов, куда нужно перейти с /katalogi)",
    ),
Хотя лучше добавить правило в htacess
HTML:
RewriteEngine on
RewriteRule ^/katalogi/?$ /catalog/list.php [R=301,L]
 
это тип ссылки , с www и без www , а также с / и без /

там может быть любой каталог не только /katalogi/
 
Чтобы вели на одну страницу ссылки "с /" и "без /" надо в настройках ЧПУ компонента, который их выводит, попробовать указать просто SECTION_CODE без /. Но, вобще-то, специально сделано в системе, чтобы не было ссылок на папки без / в конце.

Знак / в конце говорит ЧПУ, что это эмулируется папка, а без / - файл.
 
Ребят, помогите пожалуйста. Переношу новости, не могу настроить чпу отображения новостей. Показывает код 404
Необходим вывод новостей типа " #SITE_DIR#/news/#SECTION_CODE#/#ELEMENT_CODE#.php "
Создал страницу " #SITE_DIR#/news/newsdetail.php "
Добавил в нее компонент " bitrix:news.detail " и настроил ID новости " ={$_REQUEST["ELEMENT_ID"]} "
В правилах обработки адресов указал
Условие " #^/news/([a-zA-Z0-9]+$)/([a-zA-Z0-9]+$)/# "
Компонент " bitrix:news.detail "
Файл " /news/newsdetail.php "
Правило " ELEMENT_CODE=$2 "

При переходе по ссылке "новость детально" открывается 404.

Подскажите, пожалуйста, на каком этапе совершил ошибку. Спасибо.
 
Подправил

Условие » #^/news/([a-zA-Z0-9]+$)/([a-zA-Z0-9]+$)\.php# »
ID новости » ={$_REQUEST["ELEMENT_CODE"]} »

не помогает
 
Назад
Сверху