Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как настроить rewrite для Joomla от дублей в nginx?  (Прочитано 1159 раз)

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

Оффлайн 20strannik08

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Люди добрые подскажите, Я уже всю голову себе переломал, пытаюсь бороться с дублями на сайте такого вида:
site.ru/category/document.html(более правильный вариант, все остальное беда...)
site.ru/category/document/
site.ru/category/document

site.ru/index.php/category/document.html
site.ru/index.php/category/document/
site.ru/index.php/category/document

Решил копать в сторону редиректов nginx, и удалось добится редиректа окончания расширения адреса любого отличного от *.html на него самого же, вот таким путем:

rewrite ^([^.\?]*[^/])$ $1.html permanent;
rewrite (.+)/$ $1.html permanent;

Не знаю на сколько это верное решение...Но я не могу понять как вырезать /index.php/ из url? Может кто подскажет?

На сервере стоит nginx+php-fpm, Joomla 3.5(самое злое зло которое я когда-либо встречал)
« Последнее редактирование: 13 Июня 2016, 09:52:23 от 20strannik08 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
А отказаться от реврайтов в голову не приходило?
nginx - не апач, и настраивается совершенно иначе.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн 20strannik08

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Подскажите примером хотя бы?)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Вся документация примеров… На русском!!!…

Пользователь добавил сообщение 13 Июня 2016, 12:13:12:
Ну для начала можете послушать автора
« Последнее редактирование: 13 Июня 2016, 12:13:12 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Teak

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
    • redin.info
Ну типа так (проверил, работает):

        rewrite ^/index\.php(\/.+\.html)$       $1      permanent;
        rewrite ^/index\.php(\/.+)\/$           $1.html permanent;
        rewrite ^/index\.php(\/.+)$             $1.html permanent;
        rewrite ^(\/.+\.html)$                          break;
        rewrite ^(\/.+)\/$                      $1.html permanent;
        rewrite ^(\/.+)$                        $1.html permanent;

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Может, лучше сделать так, чтобы не было этих самых дублей?

Оффлайн 20strannik08

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Teak: Ваш способ вызывает /index.html.php, почемуто не захотело работать.

unimix: Я думал над этим) Но что бы Joomla не плодила дублей нужно полностью переписывать sef как ее самой так и компонентов установленых в ней, проще сам движок сменить...

--------------
Решил ситуацию вот таким способом:
location ~* ^/index\.php/(.+?)(\.html)?$ {
    return 301 https://magiaelements.ru/$1.html;
}

location ~* ^/([^.\?]*[^/])$ {
    return 301 https://magiaelements.ru/$1.html;
}

location ~* (.+)/$ {
return 301 https://magiaelements.ru/$1.html;
}

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Ну вот, умничка. сразу бы так.
Теперь ещё регэкспы убрать и совсем красава будет.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Teak

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
    • redin.info
Не понял про index.html.php, это какой URL так переписался?

Оффлайн 20strannik08

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
AnrDaemon: "регэкспы"?? Вы имеете ввиду избавится от регулярных выражений?


Teak: Это прям на главной странице, при заходе заместо site.ru сделался редирект на site.ru/index.html.php), наверное не сработало из за особенностей моего конфига...

Оффлайн Teak

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
    • redin.info
Мои правила к такому точно не приводят, это что-то другое. Мои вообще в принципе / не переписывают никак.

 

Страница сгенерирована за 0.028 секунд. Запросов: 25.