Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] Как убрать дубли страниц с index.php в конце?


Artorius
 Поделиться

Рекомендованные сообщения

Всем добрый вечер!
Помогите разобраться с такой проблемой: каждая страница сайта открывается по двум адресам - site.com/page1 и site.com/page1/index.php. Никак не могу найти рекомендации по настройке редиректа. Я сам не разработчик, в этом деле особо не разбираюсь... Смог только настроить редирект для главной, прописав htaccess такое праило:

RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^\z
RewriteRule ^(.*)$ http://site.biz/? [R=301,L]

Но это проблему особо не решает, ведь остальные страницы всё равно имеют дубли с index.php в конце.
Кто знает, как быть?
Arthorius на форумеДобавить отзыв для Arthorius Пожаловаться на это сообщение   Редактировать/удалить сообщение
Ссылка на комментарий
Поделиться на других сайтах


15 минут назад, Artorius сказал:
Всем добрый вечер!
Помогите разобраться с такой проблемой: каждая страница сайта открывается по двум адресам - site.com/page1 и site.com/page1/index.php.
 
Arthorius на форумеДобавить отзыв для Arthorius Пожаловаться на это сообщение   Редактировать/удалить сообщение

Такого быть не может на штатном htaccess

Ссылка на комментарий
Поделиться на других сайтах

40 минут назад, Dotrox сказал:

Покажите полностью ваш .htaccess и напишите точный номер версии и сборки ОК.

Вот этот файл:

 

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

# Prevent Directoy listing

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>

# SEO URL Settings
<IfModule mod_dir.c>
DirectorySlash Off
</IfModule>

RewriteEngine On

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

RewriteRule ^admin$ http://%{SERVER_NAME}/admin/$1 [L,R]
RewriteCond %{REQUEST_URI} !^/admin(.*)$
RewriteRule (.*)/+$ /$1 [R=301,L]
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /


RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]

RewriteRule ^news(/.*)?$ index.php?route=information/news [L]

RewriteRule ^manufacturer(/.*)?$ /index.php?route=product/manufacturer [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

 

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

 

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# gzip сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

# Редирект главной страницы с index.php на без index.php
RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^\z
RewriteRule ^(.*)$ http://site.biz/? [R=301,L]

Ссылка на комментарий
Поделиться на других сайтах


А что должны делать вот эти директивы:

RewriteRule ^admin$ http://%{SERVER_NAME}/admin/$1 [L,R]
RewriteCond %{REQUEST_URI} !^/admin(.*)$
RewriteRule (.*)/+$ /$1 [R=301,L]

?

 

 

И запомните правила работы с директивами mod_rewrite для ОК:

сначала это

RewriteEngine On
RewriteBase /

 

Затем все директивы редиректов, а после них вот этот блок:

 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

 

Только так, в такой последовательности и никак иначе!

Я снова и снова вижу, как люди пихают редиректы куда вздумается, а потом начинаются вопросы почему- что-то не работает.

Изменено пользователем Dotrox
Ссылка на комментарий
Поделиться на других сайтах


10 минут назад, Dotrox сказал:

А что должны делать вот эти директивы:


RewriteRule ^admin$ http://%{SERVER_NAME}/admin/$1 [L,R]
RewriteCond %{REQUEST_URI} !^/admin(.*)$
RewriteRule (.*)/+$ /$1 [R=301,L]

?

 

Это я убирал дубли со слешем и у меня не открывалась админка. Пришлось сделать, что все станицы сейчас без слеша, а админка со слешем.

По поводу того,  что в какой последовательности- спасибо, буду знать. Говорю же, я профан в этом деле, просто разработчика долго ждать пока сделает, вот решил сам разобраться... Завтра переделаю, как Вы советуете.

Так а как всё-таки, как же убрать index.php ?

Ссылка на комментарий
Поделиться на других сайтах


1 час назад, markimax сказал:

Такого быть не может на штатном htaccess

Я не совсем понимаю, что значит штатный, но у меня эти дубли есть((((

Ссылка на комментарий
Поделиться на других сайтах


33 минуты назад, Artorius сказал:

Я не совсем понимаю, что значит штатный, но у меня эти дубли есть((((

Дефолтный, стандартный.

 

Сохраните текущее содержимое файла и замените его текстом отсюда: https://github.com/opencart/opencart/blob/master/upload/.htaccess.txt

 

Если проблема останется, значит дело скорее всего в вашей системе ЧПУ.

Ссылка на комментарий
Поделиться на других сайтах


15 часов назад, Dotrox сказал:

Дефолтный, стандартный.

 

Сохраните текущее содержимое файла и замените его текстом отсюда: https://github.com/opencart/opencart/blob/master/upload/.htaccess.txt

 

Если проблема останется, значит дело скорее всего в вашей системе ЧПУ.

Ещё раз спасибо (к сожалению не получается поставить благодарность, как на других форумах)! Сделал, как Вы посоветовали. Вроде страниц с index.php нет, но все адреса типа site/com/page1/index.php перекидываются на главную - site.com. Это так и должно быть?

Ссылка на комментарий
Поделиться на других сайтах


2 часа назад, Artorius сказал:

все адреса типа site/com/page1/index.php перекидываются на главную - site.com. Это так и должно быть?

Ну, вариантов только два: либо 404, либо редирект на главную.

Ссылка на комментарий
Поделиться на других сайтах


17 часов назад, Dotrox сказал:

Ну, вариантов только два: либо 404, либо редирект на главную.

Ну т.е. по идее всё нормально в этом плане. Спасибо за помощь и дельные советы! Буду с разработчиком дальше общаться по поводу 404- что-то она как-то странно отвечает: со второго уровня страниц есть 404 страница, а с третьего при неправильном вводе урла перекидывает то на категорию, то на какуюто страницу. Судя по всему как-то беспорядочно она настроена (и в корне её не нашел)...

Ещё раз спасибо за помощь!

Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.