Перейти к контенту
  • 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.

 

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

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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