Перейти к контенту
  • 0

Как объединить "Главные страницы"?


Kosiak

Вопрос

Т.к. IPB3 совершенно не оптимизирована для поисковиков, и имеет 3 главные страницы (если включен SEF, который по идее должен такое безобразие как раз и устранять):

 

domain.name 

domain.name/index.php

domain.name/index

 

 

При этом теряется поисковый вес каждой из страниц, а контент дублируется. Всё это очень не любят поисковики.

 

Я попробовал сделать слияние с помощью .htaccess и Redirect:

 

redirect 301 /index http://domain.name
redirect 301 /index.php http://domain.name
redirect 301 /index.php? http://domain.name

 

Но трюк как-то не сработал - на главной странице происходит зацикливание :D

 

Может у кого-то будут идеи меня поправить?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Убрать вторую строчку.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Убрать вторую строчку.

 

Не срабатывает. Например на странице поиска: /index.php?app=core&module=search какой-то <strike>паразит</strike> индус на кнопке Отмена поставил ссылку на /index.php? Клацаем, переадресация не происходит.

 

 

Я что-то упустил. Возможно переадресацию нужно делать используя уже готовую конструкцию:

 

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule . /index.php [L]
</IfModule>

Но я ничерта не разбираюсь в регулярках :D

Изменено пользователем Kosiak
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Можно попробовать в конец добавить

RewriteRule /index.php?$ /index.php [L]
RewriteRule /$ /index.php [L]

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не сработало :D

 

Вообще в SEF IPB3 есть гадкая возможность множить сущности (может от неё нужно избавиться, тогда и проблема решится):

 

Кроме

domain.name

domain.name/index.php

domain.name/index

 

На главную страницу будет вести также и

domain.name/написать-здесь-чего-нибудь

domain.name/?%ED%E0%EF%E8%F1%E0%F2%FC-%E7%E4%E5%F1%FC-%F7%E5%E3%EE-%ED%E8%E1%F3%E4%FC

domain.name/index2

и вообще всё, что захотите...

Может можно как-то от этого избавиться, чтобы либо валилась ошибка, либо 301 редирект?

Изменено пользователем Kosiak
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Можно попробовать в конец добавить

RewriteRule /index.php?$ /index.php [L]
RewriteRule /$ /index.php [L]

после добавления данного кода вместо админки кидает на главную.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Нужно видеть весь код, что нагненерил IPB в .htaccess, могут быть неучтённые факторы.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Есть интересный вариант - можно сделать приложение, которое будет содержать сообщение об ошибке 404 и сделать его IPS_DEFAULT_PUBLIC_APP. В самом коде в нем сделать проверку REQUEST_URI, и только если он совершенно пуст - выводить список форумов :D

 

Тогда на всем форуме все некорректные ссылки будут вести на 404, и только пустая строка адреса - на список форумов.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Можно попробовать в конец добавить

RewriteRule /index.php?$ /index.php [L]
RewriteRule /$ /index.php [L]

 

Не сработало :D

Туплю. нужно добавлять это перед последней строчкой. Смысл в том, чтобы сначала отредиректить все дуюли на нужную страницу, указав что это последнее правило ([L]), а потом все запросы отправить на index.php.

Только писать надо не просто [L], а указав нужный код редиректа. Думаю на СЕОфорумах это уже давно написано, кстати.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Только писать надо не просто [L], а указав нужный код редиректа.
В смысле? Это вроде как-то так делается: [R] как же код в этом случае указать?

 

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule /index.php?$ /index.php [L]
RewriteRule /$ /index.php [L]
RewriteRule . /index.php [L]
</IfModule>

Приводит к ошибке Internal Server Error

Ссылка на комментарий
Поделиться на других сайтах

  • 0

По логике

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^index.php?$ /index.php [R=301,L]
RewriteRule ^$ /index.php [R=301,L]
RewriteRule . /index.php [L]
</IfModule>

а ошибку лучше попробовать расшифровать. Сейчас, к сожалению, не до тестов.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не срослось.

Есть вероятность, что у меня не совсем обычно сервер настроен?

а ошибку лучше попробовать расшифровать.
Это как? В логах Апача что-то искать?
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да много чего исправили там, вот только когда выйдет неизвестно...
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Я вчера таки добрался до реального теста. http://forums.ibresource.ru/index.php?showtopic=59973, задача похожая, нужно лишь дописать R=301 в конце правил. Можете попробовать адаптировать под вашу задачу.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Можете попробовать адаптировать под вашу задачу.
Ну это как сказать :D

Понять, что "the truth is out there" я могу, а вот где именно - это тяжеловато...

 

<IfModule mod_rewrite.c>

Options -MultiViews +FollowSymLinks

RewriteEngine On

#RewriteBase /

 

RewriteRule ^index.htm$ index.php?%{QUERY_STRING} [L]

RewriteRule ^index.html$ ./index.php?%{QUERY_STRING} [L]

RewriteRule ^main.html$ ./index.php?act=idx&%{QUERY_STRING} [L]

RewriteRule ^ipb.html$ ./index.php?%{QUERY_STRING} [L]

RewriteRule ^topic([0-9]+)\.html$ index.php?showtopic=$1&%{QUERY_STRING}

RewriteRule ^topic([0-9]+)s([0-9]+)\.html$ index.php?showtopic=$1&st=$2&%{QUERY_STRING}

RewriteRule ^forum([0-9]+)\.html$ index.php?showforum=$1&%{QUERY_STRING}

RewriteRule ^cat([0-9]+)\.html$ index.php?act=SC&c=$1&%{QUERY_STRING}

RewriteRule ^ptopic([0-9]+)\.html$ index.php?act=Print&client=printer&f=1&t=$1&%{QUERY_STRING}

RewriteRule ^user([0-9]+)\.html$ index.php?showuser=$1&%{QUERY_STRING}

 

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php [L]

</IfModule>

Ээээх!
Ссылка на комментарий
Поделиться на других сайтах

  • 0

А как сделать что бы в ЧПУ вместо форума была строка не site.name/index а site.name/forum/ ? Просто дальше (когда заходишь в тему или форум) всё работает, отображаеться site.name/forum/1-имя-форума/ а главная форума site.name/index (

С порталом тем более путаеться - site.name/index.php?

mod_rewrite включен.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

2rok вы заблуждаетесь и сравниваете кислое с быстрым.

 

site.name/index и site.name/index.php? - это ошибка, а не нормальное положение вещей. site.name/forum/* - это вполне правильный путь

Эта тема как раз о том, чтобы исправить ошибки.

Изменено пользователем Kosiak
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Kosiak, вы не поверите, но:

 

example.com/index.php
example.com/
example.com/hello
example.com/fucking_crazy_bitch
....
example.com/everything

 

Все эти страницы выводят список форумов. Ну нету у IPB страницы 404. Давайте сделаем :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ну так я об этом тут и написал: http://forums.ibresource.ru/index.php?show...st&p=361867

 

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Обсуждение хука разделено в Модификации в разработке » Хук склеивания нескольких главных страниц ritsu_redirect, 3.x.

 

Хук удовлетворяет потребности большинства, тему закрываем?

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.