Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....

 

Заменить раширение php на html в Битриксе

Автор ewdokimow, 04-03-2013, 18:19:11

« назад - далее »

ewdokimowTopic starter

Друзья, потихоньку переделываю сайт с Джумла на Битрикс.

Столкнулся с такой проблемой,  как заменить расширение урла с PHP на HTML. Обратная схема прописана, но в обратном порядке не сработала. Сейчас все урлы (более 200-сот) с html. При переезде хочу сохранить все старые урлы.

Еще хочу из урлов убрать категории. Битрикс их сам прописывает.  На Джумле это сейчас делает sh404sef.
Андрей
  •  


parmactep

#1
Для замены расширения урлов с PHP на HTML на сайте Joomla, который вы переписываете на Bitrix, вам потребуется выполнить несколько шагов.

1. Сперва вам следует настроить правила перенаправления 301, чтобы старые урлы с расширением PHP ссылались на новые урлы с расширением HTML. Это позволит сохранить все внешние ссылки и поисковый индекс.

2. Далее вам нужно определиться, какие урлы нужно изменить. Если вы хотите удалить категории из урлов, вы можете использовать функционал Bitrix для автоматической генерации урлов без учета категорий. Это обычно настраивается через модуль "Управление структурой" или в настройках компонента.

3. Когда у вас будет настроен новый формат урлов, вам потребуется создать правила URL-перенаправления в Bitrix, чтобы перенаправить старые урлы с расширением PHP на новые урлы с расширением HTML. Это можно сделать с помощью правил компонента "URL-адрес".

4. Наконец, после импорта старых урлов и настройки перенаправлений проверьте, что все работает должным образом и нет неработающих ссылок.

В Битриксе замена расширения урлов с PHP на HTML может быть достигнута с помощью использования компонента "URL-адрес". Вот как это можно сделать:

1. Откройте панель администратора Битрикса и перейдите в раздел "Сайты" (находится в верхнем меню).

2. Выберите нужный веб-сайт из списка и перейдите в его настройки.

3. Перейдите на вкладку "Настройки" и найдите раздел "Шаблоны URL-адресов".

4. В этом разделе вы можете определить правила для перенаправления урлов с расширением PHP на урлы с расширением HTML.

5. Щелкните на кнопке "Добавить шаблон" и введите шаблон, который будет соответствовать вашим урлам. Например, если ваш текущий урл имеет вид "/page.php", то шаблон может быть таким: "/page.html".

6. После ввода шаблона, сохраните настройки и проверьте, что новые урлы корректно работают.

Обратите внимание, что при замене расширения урлов необходимо также настроить перенаправление 301 для старых урлов на новые, чтобы сохранить ссылочную целостность и рейтинг поиска.

RewriteRule ^(.*)\.html$ $1.php [R=301,L]
Все ссылки с расширением html будут редиректится на php
Подробнее о 301 редиректе тут
  •  


ewdokimowTopic starter

Цитата: parmactep от 04-03-2013, 19:22:45
RewriteRule ^(.*)\.html$ $1.php [R=301,L]
Все ссылки с расширением html будут редиректится на php
Подробнее о 301 редиректе тут
На существующие ссылки уже есть ссылочная масса. Нужно php на html
Андрей
  •  

parmactep

Тогда с точностью до наоборот
RewriteRule ^(.*)\.php$ $1.html [R=301,L]
  •  

Вебнет

Цитата: parmactep от 04-03-2013, 19:49:37
Тогда с точностью до наоборот
RewriteRule ^(.*)\.php$ $1.html [R=301,L]

Такая конструкция для Битрикса по умолчанию работать не будет. Каждый раздел содержит файл "index.php"  и получается по этому правилу index.php -> index.html Но, если файла index.html нет, и тут вступает в игру обработчик динамических (виртуальных) урлов и этот файл /bitrix/urlrewrite.php тоже редиректит на /bitrix/urlrewrite.html которого точно нет, получается цикл.

Можно пример урлов  как есть, и как надо, просто не понимаю я зачем вам с .html нужно связываться (просто сделать папками для статических страниц). Если это для конкретного раздела или разделов, то можно только для них прописать это правило в .htaccess, но не для всего сайта.
  •  


zloberman

сделать от обратного - редиректить все html ссылки на php вариант, для htaccess есть простая конструкция для этого
ссылочная масса, посетители и роботы - все перельется

Вебнет

#6
Цитата: ewdokimow от 04-03-2013, 18:19:11
Друзья, потихоньку переделываю сайт с Джумла на Битрикс.

Столкнулся с такой проблемой,  как заменить расширение урла с PHP на HTML. Обратная схема прописана, но в обратном порядке не сработала. Сейчас все урлы (более 200-сот) с html. При переезде хочу сохранить все старые урлы.

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

Коллеги, ошибка! исправленная строчка: RewriteRule ^(.*)\.php$ /$1.html [R=301,L] (со слешем перед $1), если говорить не о Битриксе, а об абстрактном перенаправлении с .php на .html

Как вариант только для раздела /test/  сайта на CMS Битрикс и всех его подразделов:
RewriteRule ^test/(.*)\.php$ /test/$1.html [R=301,L]
Важно! В этом случае раздел(подраздел) должен существовать физически и в нем должен быть хоть и пустой, но файл "название файла.php" и конечно же ваш "название файла.html"
Пример:
/test/proverka.php -> /test/proverka.html  (для того чтобы сработало должны существовать оба файла)

Но еще раз повторюсь: ewdokimow Нужно более подробно вам поставить задачу, с конкретными примерами, в данном случае абстрактное перенаправление описано выше, а конкретно под CMS Битрикс все может быть много сложнее и даже возможно не через .htaccess, а в коде. 

Добавлено: 11-03-2013, 11:44:22


Есть еще один оригинальный способ в CMS Битрикс сделать подобный редирект
Файл ЧПУ (сохранить себе копию, прежде чем изменять!)
/urlrewrite.php

Пример:

<?
$arUrlRewrite = array(
   array(
      "CONDITION"   =>   "#^/news/#",
      "RULE"   =>   "",
      "ID"   =>   "bitrix:news",
      "PATH"   =>   "/news/index.php",
   ),
   array(
      "CONDITION"   =>   "#^/test/(.+)\.php#",
      "RULE"   =>   "$1.html",
      "ID"   =>   "",
      "PATH"   =>   "/test/",
   ),
);
?>


где:
   array(
      "CONDITION"   =>   "#^/test/(.+)\.php#",
      "RULE"   =>   "$1.html",
      "ID"   =>   "",
      "PATH"   =>   "/test/",
   ),

отвечает за перенаправление с /test/filename.php на /test/filename.html
Плюс данного метода в том, что файлы /test/filename.php не просто не нужны, а не должны существовать, в отличие от реврайта .htaccess, но есть и большой минус - сторонние (вручную) включения таких редиректов может быть затерто сохранением параметров кастомизированного компонента с включенным ЧПУ, такое происходит не часто, но наличие нужных строк приходится  контролировать.

И для тех у кого новая 12-я версия CMS, там есть такой инструмент, как Короткие ссылки, это что-то типо ручного редиректа (с какой на какую). Найти его можно в разделе Настройки. В принципе это вариант неплохой, сам не пробовал, но думаю будет работать. Для него плюсы те же, а минусов нет.
  •  

ewdokimowTopic starter

#7
Вебнет, сейчас сайт на Джумле http://www.kovka-istrazone.ru. Урлы с html и категории скрыты (sh404sef). Переделываю сайт на Битрикс http://истра-ковка.рф (потом алиас сделаю). Естественно, хочу сохранить существующие урлы.

Добавлено: 11-03-2013, 19:04:08


короткие ссылки пробовал.



так понимаю, что это оптимальное решение?
Андрей
  •  


Вебнет

#8
Цитата: ewdokimow от 11-03-2013, 15:36:14
Вебнет, сейчас сайт на Джумле http://www.kovka-istrazone.ru. Урлы с html и категории скрыты (sh404sef). Переделываю сайт на Битрикс http://истра-ковка.рф (потом алиас сделаю). Естественно, хочу сохранить существующие урлы.

Тогда два варианта:
Вариант 1 и самый простой, да и думаю самый правильный
Если я правильно понял вы хотите сохранить структуру сайта такой же, как и на старом.
Открываем Конткнт->Структура сайта->Ваш сайт
Добавить-> Добавить файл
Указываем Имя файла (к примеру первый foto-kovanyh-rabot.html) прописываем метатеги и заголовки и контентную часть.
Сохраняем.
Проделываем такое со всеми файлами.

Вот и все, никакого редиректа не нужно, структура идентична.
   
Вариант 2
Новая структура сайта, новые урлы с тем же контентом.

Чтобы не потерять старые ссылки необходимо сделать с таких страниц 301 редирект. Для этого в файл Битрикса
/bitrix/php_interface/init.php (если файла нет, создайте его пустым)
вставить код:

//массив
$arRed = array (
     "/foto-kovanyh-rabot.html" => "/foto/",
     "/zabori-kovanie.html" => "/foto/zabori-kovanie/",
);
// если есть в массиве, то редирект
if(isset($arRed[$_SERVER["REQUEST_URI"]])) LocalRedirect($arRed[$_SERVER["REQUEST_URI"]],false,"301 Moved Permanently");



............
в массив нужно по примеру вставить все старые и новые урлы

Важно! Ошибки в этом файле могут привести к отказу работы всего сайта. Прежде чем изменять файл сохраните его копию у себя. Код PHP должен быть вставлен внутрь <? ... ?>  где '...' - код (уже существующий или только ваш)

Как вариант, вместо этого можно использовать, описанный выше инструмент - Короткие ссылки.

Если как-то иначе, ewdokimow, поправьте.

Добавлено: 11-03-2013, 20:03:10


Цитата: ewdokimow от 11-03-2013, 15:36:14
так понимаю, что это оптимальное решение?

Да самое лучшее из всех, и без заморочек.
  •  

ewdokimowTopic starter

Вебнет, я пробовал, как вы говорите:
Вариант 1 и самый простой, да и думаю самый правильный
Если я правильно понял вы хотите сохранить структуру сайта такой же, как и на старом.
Открываем Конткнт->Структура сайта->Ваш сайт
Добавить-> Добавить файл
Указываем Имя файла (к примеру первый foto-kovanyh-rabot.html) прописываем метатеги и заголовки и контентную часть.
Сохраняем.
Проделываем такое со всеми файлами.


так получается:
Андрей
  •  



Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....