Неправильно отображается страница (ы)

Статус
Закрыто для дальнейших ответов.

fgtl

Новичок
Регистрация
01.06.2018
Сообщения
3
Всем привет. Помогите люди добрые)
Если зайти на сайт по ссылке https://www.123city.ru то все отображается нормально.
Если зайти на сайт по такой ссылке https://www.123city.ru/ то все отображается криво.
Ну и если зайти на любую страницу сайта и добавить этот символ в конце адреса страницы то все будет сикось накось.
Как исправить.?
Спасибо
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
Слеш, думаю, ни причём. С ним и без него смотрел разными браузерами - всё одинаково. Попробуйте открыть свой браузер, не открывая сайта почистить кеш, а потом смотреть сайт.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Там проблема в путях.
Стоит почитать про относительные и абсолютные пути.
На сайте используются относительные пути и они используются неверно.
В общем:
1) везде

src="core/buttons/b379hvgal/7cd85ec5_up.png"
надо заменять на (добавить слэш)

src="/core/buttons/b379hvgal/7cd85ec5_up.png"
2) По хорошему ещё через .htaccess сделать редирект для статических страниц, чтобы уничтожать слэш в конце статических файлов. В гугле спрашиваем "htaccess удалить слэш" и ищем подходящий вариант.
 

fgtl

Новичок
Регистрация
01.06.2018
Сообщения
3
Спасибо, буду изучать предоставленную инфу

У меня сейчас фаил .htaccess выглядит так

AddDefaultCharset UTF-8

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
мне нужно добавить туда эти строки

Код:
RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} (.*)

RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
я могу просто дописать их ниже или это так не работает?)
Код:
AddDefaultCharset UTF-8

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]


RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Вопрос решен спасибо
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Правильно делать так

AddDefaultCharset UTF-8

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Дважды объявлять RewriteEngine On не надо.
Остальные правила необходимо выставлять в порядке приоритета/очереди.
 

miketomlin

Well-Known Member
Регистрация
12.11.2013
Сообщения
101
[member=BaNru], не нужно отдельное условие для слеша, не нужно брать слеш в скобки (если вы таким образом хотели показать его необязательность, то просто после проставьте вопрос или звездочку). Есть риск цикл. редиректа на каталогах, если включен mod_dir (имеет смысл добавить спец. директиву этого модуля для запрета принудительного добавления трэйлинг слешей у каталогов). Лучше совместить двойной редирект.

[member=fgtl], конкретно для главной слеш есть всегда, даже если вы его не видите. На правилах это особо не сказывается, т.к. в контексте .htaccess он не участвует в проверках.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
miketomlin сказал(а):
BaNru, не нужно отдельное условие для слеша, не нужно брать слеш в скобки
Я не вдавался в подробности кода, я просто скопировал предоставленный выше fgtl. Так что я тут не причём
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
А как может влиять слэш в адресе на вид страницы?
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Volly сказал(а):
А как может влиять слэш в адресе на вид страницы?
src="core/buttons/b379hvgal/7cd85ec5_up.png"
Если example.com/index.html, то браузер знает, что это файл и адрес будет такой

example.com/core/buttons/b379hvgal/7cd85ec5_up.png
Если же стоит слеш example.com/index.html/, то браузер думает, что это директория и адрес будет такой

example.com/index.html/core/buttons/b379hvgal/7cd85ec5_up.png
Это одно и тоже, что в браузере будет example.com/folder/, равно как и если добавить файл example.com/folder/index.php На выходе будет в обоих случаях

example.com/folder/core/buttons/b379hvgal/7cd85ec5_up.png
Такой вид записи означает, что файлы хранятся в этой же директории.
Если добавить у адресов слэш, то это означает от "корня" сайта
Код:
src="/core/buttons/b379hvgal/7cd85ec5_up.png"
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
Непонятно я задал выше вопрос. Поправляюсь.
Топик стартёр дал два примера 123city.ru и 123city.ru/ и утверждает, что страница показывается по разному.
И именно в таком случае мне не понятно как может слеш влиять на отображение страницы.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Volly сказал(а):
123city.ru и 123city.ru/ и утверждает, что страница показывается по разному.
Нормально у него всё было. Видать попутал немного.
Но на других страницах - эта проблема была актуально.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ