Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Статистические страницы, как убрать .html ?

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


     16.04.2015    Все вопросы » Хаки    5049

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

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

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

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

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


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

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


13 комментариев

ПафНутиЙ
Админ

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

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

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

Sander
PHP-developer

Sander - 16 апреля 2015 18:43 -

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

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

Telegram: @sandev
Skype: Sander8804

D0Gmatist
Юзер

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
Юзер

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

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

sergeevizh
Юзер

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

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

Johny
Юзер

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

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

LazyDev
PHP-developer

LazyDev - 16 апреля 2015 21:11 -

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

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Johny
Юзер

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

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

LazyDev
PHP-developer

LazyDev - 16 апреля 2015 21:17 -

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

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

ws17
Юзер

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

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

ws17
Юзер

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

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

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

ws17
Юзер

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
Юзер

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

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

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

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

наверх