Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Всем добрый вечер!
Помогите разобраться с такой проблемой: каждая страница сайта открывается по двум адресам - 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 ?

Надіслати
Поділитися на інших сайтах


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 year later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.