Не нравятся результаты поиска? Попробуйте другой поиск!

Статистические страницы, как убрать .html ?


     16.04.2015    Хаки    1512

вопрос
Здравствуйте уважаемые пользователи сайта.
Оптимизирую сайт на dle, столкнулся с проблемой.

Создаю дополнительные статистические страницы со статьями и урл в виде ключевого слова и т.д
Страницы создаются с расширением в конце .html
Как убрать данное расширение? так как это плохо для продвижения.

Щас так:
__сайт.ru/prokat-avtomobiley-vo-vladivostoke.html

А надо сделать так:
__сайт.ru/prokat-avtomobiley-vo-vladivostoke/

Писал в тех поддержку движка dle, ответили что не пишут дополнительные модули.


Искал через поиск, находил темы старые но решения в них не было решил задать вопрос, похожий.

Ответа пока нет


Комментарии пользователей (13)

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 16 апреля 2015 18:00 - Админ

Тут есть один нюанс - как объяснить движку, что это НЕ категория?

Каков вопрос - таков и ответ. Просто помните об этом.

Sander
1126

1638 | 1204

Sander - 16 апреля 2015 18:43 - Эксперт

Делать запрос в БД при каждом запросе на подобную страницу.
Т.е. проверять, есть ли статическая страница с таким именем. Но, это дело в принципе можно и нужно кешировать.

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

D0Gmatist
225

794 | 281

D0Gmatist - 16 апреля 2015 21:36 - Местный

Я делал хитро.. в движке есть зарезервированные имена которыми нельзя обозвать категории.
Что говорит о том что можно таким же макаром внести ещё одно правило

НО... статья будет не
сайт.ru/prokat-avtomobiley-vo-vladivostoke/
а
сайт.ru/st/prokat-avtomobiley-vo-vladivostoke/
То есть в .htaccess дописать
RewriteRule ^st/([^/]*)(/?)+$ index.php?do=static&seourl=$1 [L]
RewriteRule ^st/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=static&seourl=$1&news_page=$2 [L]

Список запрещённых имен при создании категории
в \engine\inc\categories.php
$reserved_name = array('tags','xfsearch','user','lastnews','catalog','newposts','favorites');
заменить на
$reserved_name = array('st','tags','xfsearch','user','lastnews','catalog','newposts','favorites');

в \engine\init.php
if (isset($_GET['do']) AND $_GET['do'] == "static") {

    $name = @$db->safesql( trim( totranslit( $_GET['page'], true, false ) ) );
    $static_result = $db->super_query ( "SELECT * FROM " . PREFIX . "_static WHERE name='{$name}'" );
    $category_skin = $static_result['template_folder'];

}
заменить на
if (isset($_GET['do']) AND $_GET['do'] == "static") {

    $name = @$db->safesql( trim( totranslit( $_GET['seourl'], true, false ) ) );
    $static_result = $db->super_query ( "SELECT * FROM " . PREFIX . "_static WHERE name='{$name}'" );
    $category_skin = $static_result['template_folder'];

}
в \engine\modules\static.php
$name = @$db->safesql( trim( totranslit( $_GET['page'], true, false ) ) );

заменить на
$name = @$db->safesql( trim( totranslit( $_GET['seourl'], true, false ) ) );

Ну и конечно в static.php изменить вид генерируемых ссылок
Могут быть мелкие недочёты.. давно делал такое и может быть что то забыл

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Johny
2

55 | 12

Johny - 16 апреля 2015 18:19 - Юзер

А как оно без newsid будет знать какую новость открыть? Видел в реврайтах news_name, может по нему можно, пробовать выбирать. Но опять таки, придется еще что-то менять, потому что движок будет думать что категория.

sergeevizh
1

59 | 10

sergeevizh - 16 апреля 2015 19:45 - Юзер

Может по аналогии это поможет

Johny
2

55 | 12

Johny - 16 апреля 2015 21:05 - Юзер

Ну все тоже самое надо делать, только в движке исправления и в реврайтах делать изменения для чпу-1 типа, а еще я так понял у вас уже не используется id новости, уже какие-то изменения были внесены.

Gameer
226

1124 | 396

Gameer - 16 апреля 2015 21:11 - Эксперт

Johny, ЭТО ДЛЯ СТАТИЧЕСКИХ СТРАНИЦ А НЕ НОВОСТЕЙ!

Истина в противоречии.​

Johny
2

55 | 12

Johny - 16 апреля 2015 21:14 - Юзер

Ну типа окей, че кричать то =) по ссылке ни слова про статические страницы )

Gameer
226

1124 | 396

Gameer - 16 апреля 2015 21:17 - Эксперт

Johny, там ясно написали даже в тайтле вопроса. И перед ссылкой было "по аналогии". Но это не поможет.

Истина в противоречии.​

ws17
8

ws17 - 17 апреля 2015 04:36 - Юзер

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

ws17
8

ws17 - 17 апреля 2015 05:16 - Юзер

Сделал как было тут написано, __http://igameer.ru/port/2-unset_html.html
чет ничего не изменилось !

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

ws17
8

ws17 - 17 апреля 2015 05:35 - Юзер

вот так работает, переадресация

DirectorySlash Off
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /[^.]+\.html\ HTTP
RewriteRule ^(.+)\.html /$1 [R=301,L]
RewriteRule ^([^.]+)(?<!\.html|/)$ /$1.html [L]

но правильно ли это ? для сео.

Johny
2

55 | 12

Johny - 17 апреля 2015 23:27 - Юзер

В seo блогах пишут что: Использование 301 редиректа – это отличный метод сохранения ваших позиций в поисковых системах, при перемещении сайта или отдельных его страниц.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы