Сообщения без ответов | Активные темы Текущее время: 25 окт 2026, 02:29



Ответить на тему  [ Сообщений: 34 ]  Страница 1, 2, 3, 4  »
Добавляем слэш в конец URL адреса 
Автор Сообщение
Всем привет!

Возникла необходимость сделать для всех URL адресов, кроме страниц .html, чтобы они оканчивались слэшем на конце.
Во первых это надо для исключения лишних дублей, а во вторых для правильной работы СЕО-модуля, над которым я сейчас работаю.

Делаю я это через .htaccess путём добавления следующих строчек:

сейчас поставил вариант попроще (вроде работает нормально)

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ [R=301,L]


либо посложнее (но тут пришлось добавить пару строк, но вроде бы тоже работает)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.html)
RewriteCond %{REQUEST_URI} !(.xml)
RewriteCond %{REQUEST_URI} !(.jpg)
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://prodgoroda.ru/$1/ [L,R=301]



Проблема в том, что при добавлении этого кода перестаёт работать голосовалка (рейтинг) для компаний.
Пример: https://prodgoroda.ru/shops/156-OOO-ODA/
При попытке проголосовать пишет:

при первом варианте кода:
"Ошибка при отправке формы"

при втором варианте кода:
"Вы не все оценили".

Как побороть этот недуг?


Профиль
Дополнение...

Сейчас заметил, что при добавлении кода:
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ [R=301,L]


на некоторых страницах зелёный замочек (защищённого соединения) становится жёлтым.

При втором варианте такого не замечаю.

Вообще нет ли конфликта этих двух правил в коде:

AddDefaultCharset UTF-8
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.html)
RewriteCond %{REQUEST_URI} !(.xml)
RewriteCond %{REQUEST_URI} !(.jpg)
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://prodgoroda.ru/$1/ [L,R=301]


и надо ли изменить http на https в 4 строчке?


Профиль
Хотя там же не только эти правила выполняются. На всякий пожарный пишу весь код.
Может кто подскажет, если что то неверно. Ну и хотелось бы починить голосование на сайте.

AddDefaultCharset UTF-8

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.html)
RewriteCond %{REQUEST_URI} !(.xml)
RewriteCond %{REQUEST_URI} !(.jpg)
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://prodgoroda.ru/$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
RewriteCond %{HTTP_USER_AGENT} (DomainCrawler|ltx71|AhrefsBot|SolomonoBot|SearchBot|MJ12bot|DotBot|CCBot|Site-Shot|TOBBOT|trendictionbot|statdom.ru|seranking_audit_bot) [NC]
RewriteRule .* - [F,L]

#<IfModule mod_security.c>
#SecFilterEngine Off
#SecFilterScanPOST Off
#</IfModule>
#<IfModule security_module>
#SecFilterEngine Off
#SecFilterScanPOST Off
#</IfModule>
#<IfModule security2_module>
#SecFilterEngine Off
#SecFilterScanPOST Off
#</IfModule>

## USER IP BANNING
<Limit GET POST>
order allow,deny
deny from 62.122.182.106
deny from 178.127.147.228
deny from 178.127.215.27
deny from 80.252.154.233
deny from 185.6.8.9
allow from all
</Limit>


Профиль
Никто не сталкивался с таким?
Может кто реализовал добавление слэша путем РНР?
Если не найдётся решение, то придётся долго и мучительно карпеть над СЕО-модулем


Профиль
Решение найдено.
Всем спасибо за внимание!


Профиль
Ну вот, избавился от дублей со слэшем и без, от дублей page1.html.
От нескольких багов движка.
Ещё произвёл кое какую хитрость в СЕО.

И наконец то Яндекс снял все санкции (или может как то это по другому называется) и трафик с 0 подскочил до 250 переходов с поиска и продолжает расти.

С Вашим движком я как будто университет закончил и получил диплом специалиста в области программирования и СЕО. :roll:
Спасибо!


Профиль
Иллюзионист писал(а):
Решение найдено.
Всем спасибо за внимание!

Поделитесь пожалуйста правильным решением!


Профиль
Вопрос такой, как убрать дубли page1.html через htacces?? Или их можно в роботсе запретить и все?


Профиль
Если просто запретить индекс всех страниц с page.html, в робот тхт добавить надо вот такую строку

Disallow: /*/page*.html


Профиль
Краткая суть поста – чем меньше файл robots.txt тем лучше и качественнее сайт, и это относится вообще к любому движку или сайту.

Я вам еще раз расскажу, почему и для чего нужен файл robots.txt и директивы в нем, а так же почему меньше директив это показатель качества.

Знаете что такое идеальный сайт? Это сайт, каждая страница которого несет пользу для посетителя и эту страницу не стыдно показать поисковику, потому что она ему понравится и будет высоко ранжироваться.

А для чего придумали robots.txt? Для того чтобы указывать поисковику какие страницы посещать и индексировать можно, а какие нельзя. Закрывая от индексации какие-то страницы (или даже разделы) вы тем самым признаете, что эти страницы некачественные или ненужные по различным причинам. Чаще всего запрет используется для исключения дублей страниц и технической информации. К сожалению, реальность такова, что сегодня 99% сайтов имеющих файл роботс закрывают с его помощью как раз такие страницы.


Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 34 ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron