Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 31 Ответов
  • 2017 Просмотров
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Попробуйте переписать:
Код
# Убираем index.php
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]
Код
#Редирект  со страниц site.ru/article и site.ru/article/ на страницу site.ru/article.html 
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]
В robots.txt дописать:
Код
Disallow: /index.php
« Последнее редактирование: 10.05.2016, 13:46:36 от Филипп Сорокин »
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Попробуйте переписать:
Код
# Убираем index.php
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]
Код
#Редирект  со страниц site.ru/article и site.ru/article/ на страницу site.ru/article.html 
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]
В robots.txt дописать:
Код
Disallow: /index.php

Попробовал.
Если в первом случае (скрин из первого поста) в адресной строке страницы с ошибкой стоит http://site.ru/component/config.html (скрин в первом посте)
то сейчас та же ошибка, но в адресной строке при этом http://site.ru/component/config/.html
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Кэш браузера очистить не забыли? 301-е редиректы кэшируются.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Вот эту строку замените
Цитировать
RewriteRule ^(.+)$ /$1.html [R=301,L]
на
Цитировать
RewriteRule ^(.+)/*$ /$1.html [R=301,L]
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Кэш браузера очистить не забыли? 301-е редиректы кэшируются.
После правки htaccess
- перезапустил OpenServer
- Почистил кэш в Joomla
- Попробовал процедуру в 3-х браузерах (Mozilla, IE9, Chrome) после Alt+F5
Та же ошибка при адресной строке "http://site.ru/component/config/.html"

Такая же строка вылетает и
при RewriteRule ^(.+)$ /$1.html [R=301,L]
при RewriteRule ^(.+)/*$ /$1.html [R=301,L]

Повторюсь, ошибка даже на дефолтной Joomla 3.5.1 и Protostar-е.
т.е. каждый может проверить, работает ли такая конструкция на любом сайте.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
RewriteRule ^(.+?)/*$ /$1.html [R=301,L]
А если убрать квантификатор "жадности"?
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
А если убрать квантификатор "жадности"?
Если вы про *, то с ней выдаёт ошибку на http://site.ru/component/config/.html
Если а без нее ошибку на http://site.ru/component/config.html
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Я про знак вопроса в скобках. Попробуйте заменить:
Цитировать
RewriteRule ^(.+)/*$ /$1.html [R=301,L]
На
Цитировать
RewriteRule ^(.+?)/*$ /$1.html [R=301,L]
Регулярки в .htaccess бывают очень странными. Я заметил, что они могут не подчиняться некоторым теоретическим моментам. Если не получится, то нужно ещё одну регулярку добавить перед блоком, делающим перенаправление на .html:
Цитировать
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.+?)/+$
RewriteRule .? /%1 [R=301,L]
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Я про знак вопроса в скобках. Попробуйте заменить:НаРегулярки в .htaccess бывают очень странными. Я заметил, что они могут не подчиняться некоторым теоретическим моментам. Если не получится, то нужно ещё одну регулярку добавить перед блоком, делающим перенаправление на .html:
Ошибка на http://site.ru/component/config.html при
блоке
Код
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/*$ /$1.html [R=301,L]
Ошибка на http://site.ru/component/config.html при
блоке
Код
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.+?)/+$
RewriteRule .? /%1 [R=301,L]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/*$ /$1.html [R=301,L]
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Стало быть, первый вариант корректно перенаправляет? Ну тогда дело не в рерайтах. Мне кажется, роутер Joomla! не воспринимает префикс .html, если компонент выводится без привязки к пункту меню. Тогда я бы посоветовал такой блок, который будет объединять все правила:

Цитировать
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/+$ /$1 [R=301,L]

RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!component/)(.+)$ /$1.html [R=301,L]
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Стало быть, первый вариант корректно перенаправляет?
Нет, ни один из предложенных вариантов не делает правильного перенаправления.
Страница с ошибкой либо http://site.ru/component/config.html
либо http://site.ru/component/config/.html
Выход (сохранение) из редактирования модуля корректно работает, только если закоментировать строчку "RewriteRule .* %1.html [R=301,L]" (но так дубли)

Тогда я бы посоветовал такой блок, который будет объединять все правила:
К сожалению такой блок тоже выдает ошибку  http://site.ru/component/config.html
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
http://site.ru/component/config.html
Это технически правильное перенаправление. А почему не открывается страница - это уже вопрос отдельный.
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Это технически правильное перенаправление. А почему не открывается страница - это уже вопрос отдельный.
А может не пытаться объять необъятное, а прописать 301 редирект только для пути, указанного при правильном отрабатывании кнопок "сохранить"\"отменить" в редактировании модуля?
Апач пишет следующее в случае успеха
Код
POST /component/config/ HTTP/1.1" 301 245 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D
GET /component/config.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D

т.е. пусть весь сайт перенаправляется как нам надо (и он делает так с моим изначальным htaccess-ом), но один адресок пусть обрабатывается без всяких редиректов?
Я пробовал добавить исключение через "!", перебрал несколько вариантов, но мои познания Joomla и htaccess не позволили прийти к правильному решению.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Код
GET /component/config.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D
Ошибка 500 в случае успеха? Сомневаюсь, что так оно и должно быть. Я думаю, проблема не в .htaccess. В любом случае не видя сайт сложно что-либо сказать.
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
В любом случае не видя сайт сложно что-либо сказать.
Да сайт на локалке, не покажешь.
Еще раз повторюсь, ошибка ИМХО сайтонезависима, т.к. нулячая Joomla 3.5.1. с Протостаром ловят такой глюк, следовательно и все остальные сайты при таком htaccess-е должны глючить (при данной последовательности действий).
Ну, да ладно.Вечером попробую еще потестировать чистую Joomla и протостар со всеми указанными вами вариантами.
Отпишусь тогда позже.
В любом случае спасибо за помощь.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Не знаю. Возможно есть какие-то конфликты рерайта. Копайте в сторону конфига Apache. Может, есть ещё .htaccess выше уровнем? Сам же .htaccess должен быть чистым, редиректы должны быть описаны в правильном месте:

# Begin custom redirects
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Провел своё "исследование".
Исходные данные
- Joomla 3.5.1 - чистая установка
- PHP 7
- Protostar

Попытка выйти из редактирования модуля (отмена, или сохранить)

===================

Код
Джумловский htaccess (убрал комментарии)

Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteBase /

# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

## Begin - Custom redirects

## End - Custom redirects


## Begin - Joomla! core SEF Section.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]


Отрабатывает нормально

Апач
Код
"POST /component/config/ HTTP/1.1" 303 - "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET / HTTP/1.1" 200 5518 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
========================
Джумловский htaccess + добавка в зоне "custom redirects" (здесь и далее кэши чищены)

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

Ошибка. В адресной строке http://site.ru/component/config/.html
Апач
Код
"POST /component/config/ HTTP/1.1" 301 245 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /component/config.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /favicon.ico HTTP/1.1" 404 3438 "http://site.ru/component/config.html"

==========================
Джумловский htaccess + добавка в зоне "custom redirects"
Код
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]
Ошибка. В адресной строке http://site.ru/component/config.html
Апач
Код
"POST /component/config/ HTTP/1.1" 301 246 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D" 
"GET /component/config/.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"

==========================
Джумловский htaccess + добавка в зоне "custom redirects"

Код
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/*$ /$1.html [R=301,L]

Ошибка. В адресной строке http://site.ru/component/config/.html
Апач
Код
"POST /component/config/ HTTP/1.1" 301 246 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /component/config/.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /favicon.ico HTTP/1.1" 301 240 "http://site.ru/component/config/.html"
"GET /favicon.ico.html HTTP/1.1" 404 3318 "http://site.ru/component/config/.html"
======================
Джумловский htaccess + добавка в зоне "custom redirects"

Код
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/*$ /$1.html [R=301,L]

Ошибка. В адресной строке http://site.ru/component/config.html
Апач
Код
"POST /component/config/ HTTP/1.1" 301 245 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D" 
"GET /component/config.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
======================
Джумловский htaccess + добавка в зоне "custom redirects"
Код
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.+?)/+$
RewriteRule .? /%1 [R=301,L]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/*$ /$1.html [R=301,L]

Ошибка. В адресной строке http://site.ru/component/config.html
Апач
Код
"POST /component/config/ HTTP/1.1" 301 240 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D" 
"GET /component/config HTTP/1.1" 301 245 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /component/config.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
===========================
Джумловский htaccess + добавка в зоне "custom redirects"

Код
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/+$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!component/)(.+)$ /$1.html [R=301,L]

Ошибка. В адресной строке http://site.ru/component/config
Апач
Код
"POST /component/config/ HTTP/1.1" 301 240 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D" 
"GET /component/config HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /favicon.ico HTTP/1.1" 301 240 "http://site.ru/component/config"
"GET /favicon.ico.html HTTP/1.1" 404 3318 "http://site.ru/component/config"
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/+$ /$1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_URI} !\.ico$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/+$ /$1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_URI} !\.ico$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]
Ошибка. В адресной строке http://site.ru/component/config.html
Апач
"POST /component/config/ HTTP/1.1" 301 240 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /component/config HTTP/1.1" 301 245 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET /component/config.html HTTP/1.1" 500 4032 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/+$ /$1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_URI} !\.ico$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/+$ /$1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_URI} !\.ico$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.html [R=301,L]

Чьёрт побъери - входит и выходит.
Апач
"POST /component/config/ HTTP/1.1" 303 - "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"
"GET / HTTP/1.1" 200 5518 "http://site.ru/index.php?option=com_config&controller=config.display.modules&id=1&return=aHR0cDovL2NsZWFuLnJ1Lw%3D%3D"

дополнительно
- site.ru/index.php - перенаправляет на site.ru
- site.ru/articles/ - перенаправляет на site.ru/articles.html
- site.ru/articles/article-1/ перенаправляет на site.ru/articles/article-1.html

При таком раскладе я так понимаю в robots.txt можно не указывать
Код
Disallow: /index.php
т.к. index.php и так обрезается на корень. Зачем его исключать из индексации?

Завтра протестирую сайт более детально на работоспособность. Отпишусь.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Аллилуйя!
Цитировать
т.к. index.php и так обрезается на корень. Зачем его исключать из индексации
Может и не надо. Все от ситуации зависит.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Можно ещё попробовать чуточку сократить:

Цитировать
RewriteRule ^index\.php(/.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_URI} !\.ico$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/*$ /$1.html [R=301,L]
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Так, пока полет нормальный.
Ниже привожу мой полный htaccess с комментариями

Спойлер
[свернуть]

Обратите внимание, я использовал стандартную ликвидацию index.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru [R=301,L]

а не предложенную вами связку
RewriteRule ^index\.php(/.*)$ $1 [R=301,L] + Disallow index.php в robots

Не знаю, почему вы предложили такое решение, если работает традиционное.
Роботы-роботами, но htaccess надежней (особенно при заявлениях Google "ну да, роботы есть, но мы МОЖЕМ действовать по своему")

*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Это "традиционное" решение выдаст вам такую же ошибку при любом запросе POST. К тому же, оно не охватывает path_info, урлы типа /index.php/hello-world.
*

ChaosHead

  • Гуру
  • 5241
  • 451 / 13
Цитировать
Не знаю, почему вы предложили такое решение, если работает традиционное.
Роботы-роботами, но htaccess надежней (особенно при заявлениях Google "ну да, роботы есть, но мы МОЖЕМ действовать по своему")
Но на деле с таким сталкивалось пару человек на миллиард и то неизвестно, правду ли пишу.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Robots надежный, ни один нормальный поисковик не будет его игнорировать. А вот редирект - всего лишь заголовок, который отдаётся клиенту. Этот заголовок говорит: "Перейди на другую страницу". Клиент может и проигнорировать. Так что надежность тут совершенно одинаковая.
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Это "традиционное" решение выдаст вам такую же ошибку при любом запросе POST. К тому же, оно не охватывает path_info, урлы типа /index.php/hello-world.
Думаю вы правы, но тем не менее у меня работают следующие вещи:
1. Отправка стандартной Joomla-вской формы контактов (ошибка не выдаётся, в Openserver-е текст письма складывается в нужную папочку)
2. Своя Аяксовская форма со следующим обработчиком тоже отправляет письма
Текст моего обработчика
Спойлер
[свернуть]

Я не сильный спец, но запросы "POST" насколько я вижу в скриптах присутствуют, и отрабатывают.

url типа "/index.php/hello-world" на стороне пользователя образоваться не может (в Joomla включены ЧПУ), возможно где-то в бэкэнде админки, но пока я не "поймал" такой ошибки.


 
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Если у вас включены СЕФ ссылки, то несеф ссылки всё равно остаются. То есть, присутствуют и те, и другие. POST запрос я имел в виду на /index.php. Можно немного изменить директиву, чтобы подстраховаться:

Цитировать
RewriteCond %{THE_REQUEST} ^GET\ /index\.php\ HTTP [NC]

Но опять же, это не будет затрагивать несеф ссылки.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Htaccess и редирект с index.php на без index.php

Автор PavelK

Ответов: 2
Просмотров: 2866
Последний ответ 11.05.2023, 14:31:40
от PaLyCH
htaccess редирект с страницы на страницу только для поисковых ботов

Автор wishlight

Ответов: 1
Просмотров: 1634
Последний ответ 13.11.2019, 18:28:35
от voland
На что должна заканчиваться категория и товар: на слэш или на.html?

Автор fominmen25

Ответов: 11
Просмотров: 1622
Последний ответ 16.04.2019, 16:11:37
от effrit
[Решено] Исключения для редиректов в htaccess

Автор alex_photo

Ответов: 12
Просмотров: 13571
Последний ответ 19.10.2018, 10:42:39
от Vasiliy111
Админка Joomla не открывается после правки файла htaccess

Автор bayersoff

Ответов: 2
Просмотров: 977
Последний ответ 12.10.2018, 17:23:48
от ProtectYourSite