Слеш в конце и знак вопроса в URL

Denisg
На сайте с 10.01.2008
Offline
136
19232

Каким образом работает сервер?

Т.е. при обращении сервер считывает URL по которому обращается пользователь и выдает ответ в виде страницы, верно?

Нужно ли в ссылках в таком случае писать в конце слеш, ведь при этом для сервера формируется единый и правильный адрес, верно?

И ещё вопрос про знак вопроса в URL. Допутсим ли он?

Смотрел в RFC 1738, не разобрался сходу.

Какие знаки недопустимы в URL и почему они конвертятся в %...

Denisg
На сайте с 10.01.2008
Offline
136
#1

Нашел ответ на форуме, что лучше слеш в конце ставить. Т.е. насколько я понимаю, при обращении пользователя идет запрос, далее выдается ответ от сервера. Соответственно, если запрос сформирован некорректно, то в таком случае, при таки правильном со стороны пользователя запросе сервер выдает повторный ответ.

Верно ли утверждение:

запрос смотрится до знака "?"

все что после него - это параметры

то есть слеш будет влиять только на ту часть. которая до "?"

при адресе ссылки: адрессайта.ру/?страница-на-сайте

[umka]
На сайте с 25.05.2008
Offline
456
#2

Всё, что после "адрессайта.ру" и до "?" — это путь.

Если в качестве пути указан только "/" или название директории (но не файла), и при этом нет никаких правил RewriteRule, то сервер берёт из этой директории интексный файл по-умолчанию (например, index.php).

Всё что после "?" — это строка запроса.

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

Он или находит скрипт (или файл) с соответствующим именем (в том числе, с помощью правил RewriteRule) или не находит. Если находит, то выполняет и отдаёт результат пользователю.

[umka] добавил 21.05.2011 в 00:13

Вот ещё чтиво

http://ru.wikipedia.org/wiki/URL

http://ru.wikipedia.org/wiki/URI

Лог в помощь!
DiAksID
На сайте с 02.08.2008
Offline
218
#3
'[umka:
;8973814']... Вообще, серверу абсолютно по-барабану, как выглядит запрос, сколько в нём слэшей и различных символов ...

+1, но вот ПыСЫ превередничают 😂 так что не плодим дубли и ставим слеши:


RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule (.*) %1\/ [R=301,L]
show must go on !!!...
Denisg
На сайте с 10.01.2008
Offline
136
#4

Вопрос в том - нужно ли ставить в конце слеш или нет?

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

[umka]
На сайте с 25.05.2008
Offline
456
#5

"Нужно" — с точки зрения чего?

С точки зрения сервера — по барабану.

Если вы напишете "http://site.ru/something", то если "something" является файлом, будет отдан этот файл, если это директория, то сервер сам добавит "/" и сделает редирект (т.е. да, браузер сделает ещё один запрос).

Если же у вас отдаётся один и тот же контент и с "/" и без, то с точки зрения поисковых систем это будут две разные страницы и с точки зрения оптимизаторов желательно, чтобы был только один вариант (любой).

B
На сайте с 07.05.2011
Offline
18
#6

Если это у вас директория слэш ставить нужно.

Все что передается после знака вопроса и есть параметры запроса GET разделяемые символом &(Только для скриптовых файлов php, asp, perl and etc)

nop

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий