index.php внутри ссылки. Как лечить ?

  • 13 Ответов
  • 283 Просмотров

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

*

Оффлайн yodis

Все привет, в общем задался я тем чтоб убрать index.php после доменного имени. Прописал правило в htacces и все заработало. Но стоит войти в VirtueMart в любую категорию или товар и вписать в ссылку index.php к примеру:
мойсайт.ру/категория/index.php/товар.html

И всеравно товар открывается и ссылка остается с INDEX.PHP.
Как исправить это, подскажите.  !

Re: index.php внутри ссылки. Как лечить ?
« Ответ #1 : 06.12.2016, 20:56:30 »
Цитировать
RewriteEngine on
RewriteRule ^index\.php/(.*) /$1 [R=301,L]
« Последнее редактирование: 07.12.2016, 02:04:15 от Филипп Сорокин »
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн yodis

Re: index.php внутри ссылки. Как лечить ?
« Ответ #2 : 07.12.2016, 01:54:02 »


Спасибо огромное, плюсанул !
Помогло и работает, но вот только не пойму одного, если я вставляю гдето index.php то все что до него и месте с ним удаляеться. К примеру

мойсайт.ру/категория1/index.php/категория2/товар.html нажимаем энтер и выходит теперь вот так мойсайт.ру/категория/товар.html

Сьело вот эту часть ссылки /категория1/index.php/ Это можно подправить ?

Re: index.php внутри ссылки. Как лечить ?
« Ответ #3 : 07.12.2016, 02:04:35 »
См. отредактированный ответ выше.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн yodis

Re: index.php внутри ссылки. Как лечить ?
« Ответ #4 : 07.12.2016, 02:30:01 »
См. отредактированный ответ выше.
Не работает совсем (((

Re: index.php внутри ссылки. Как лечить ?
« Ответ #5 : 07.12.2016, 02:32:13 »
Не работает совсем (((

Правило корректное: http://htaccess.mwl.be/ -- попробуйте почистить кэш.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн fsv

Re: index.php внутри ссылки. Как лечить ?
« Ответ #6 : 07.12.2016, 02:38:17 »
RewriteEngine on
RewriteRule (.*)index\.php/(.*) /$1$2 [R=301,L]
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

Re: index.php внутри ссылки. Как лечить ?
« Ответ #7 : 07.12.2016, 02:41:06 »
Цитировать
(.*)index\.php/(.*)

Ну я бы не советовал, т.к. совпадает с index.php на всех уровнях, что не является корректным решением. К тому же, правило совпадает, например со следующим:

Цитировать
iiiiiiiiiiindex.php
asdflksdjf.index.php

Рерайт должен быть точным.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн yodis

Re: index.php внутри ссылки. Как лечить ?
« Ответ #8 : 07.12.2016, 03:03:27 »
Правило корректное: http://htaccess.mwl.be/ -- попробуйте почистить кэш.

## Can be commented out if causes errors, see notes above.
Options +SymLinksIfOwnerMatch

## Mod_rewrite in use.
RewriteEngine On

#Вот код который убирает index.php:
RewriteRule ^index\.php/(.*) /$1 [R=301,L]
#RewriteRule index\.php/(.*) /$1 [R=301,L]


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

http://ecolan.com.ua/shop/index.php/%D1%81%D1%82%D0%B8%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%8B/lg/lg-735l.html

Re: index.php внутри ссылки. Как лечить ?
« Ответ #9 : 07.12.2016, 03:10:57 »
Покажите в спойлере .htaccess целиком.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

Re: index.php внутри ссылки. Как лечить ?
« Ответ #10 : 07.12.2016, 03:11:41 »
А у вас сайт в подкаталоге что ли?
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн yodis

Re: index.php внутри ссылки. Как лечить ?
« Ответ #11 : 07.12.2016, 03:13:01 »
Спойлер
[свернуть]

*

Оффлайн yodis

Re: index.php внутри ссылки. Как лечить ?
« Ответ #12 : 07.12.2016, 03:14:13 »
А у вас сайт в подкаталоге что ли?
Как это в подкаталоге ?
Путь выглядит вот так - Путь к файлам: /home/linkmart/ecolan.com.ua/www/

Re: index.php внутри ссылки. Как лечить ?
« Ответ #13 : 07.12.2016, 03:40:50 »
Ну всё работает, как задумано: ссылка http://ecolan.com.ua/index.php/shop перенаправляет на http://ecolan.com.ua/shop. Проблема состоит в том, что Joomla! обрабатывает входящий URL по нескольким урлам -- дубли страниц, разнообразных вариантов которых великое множество. То есть файла shop/index.php физически не существует, идёт рерайт на index.php, который в корневом каталоге, то есть запрос передаётся на обработку роутера J!, который в силу его несовершенности открывает дубль.

Если хотите устранить index.php не только в корне, но и на других уровнях, то можете попробовать следующее:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/index.php/ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?|(^)|(.+/))index\.php/(.*) /$1$2 [R=301,L]

Это правило сначала проверяет, есть ли /index.php в урле на всех уровнях, затем проверяет, начинается ли он от корня, если нет, то проверяет, существует ли такой файл физически. Если такого файла физически не существует, то URL обрезается. Очень важно проверить существование файла, т.к. запрос, например, на administrator/index.php вызовет ошибку.

Прежде чем применять это правило, ответьте себе на вопрос, есть ли в этом прямая необходимость? Если страницы типа /shop/index.php не проиндексированы, то правило применять не надо -- лучше закрыть индексацию этих страниц в robots.txt. Однако перенаправление с корневого index.php вам следует сделать в любом случае:

RewriteEngine on
RewriteRule ^index\.php/(.*) /$1 [R=301,L]
« Последнее редактирование: 07.12.2016, 03:55:31 от Филипп Сорокин »
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг