В чем разница между этими двумя типами URL? - PullRequest
0 голосов
/ 21 июня 2011

Я разрабатывал веб-сканер, когда заметил это.

URL 1: http://www.techwyse.com/services/

URL 2: http://www.techwyse.com/contact-us.php

URL 1 не имеет расширениякак HTML или aspx. Но он отображает страницу.Можно ли узнать точное название отображаемой страницы?(он не отображается в браузере)

Что мы называем такими URL-адресами, например URL2?

Заранее спасибо

Ответы [ 7 ]

1 голос
/ 21 июня 2011

http://www.techwyse.com/services/ относится к папке на веб-сервере, тогда как http://www.techwyse.com/contact-us.php относится к фактическому файлу на веб-сервере.

Когда вы запрашиваете папку, в принципе может произойти 4 вещи:

  1. Веб-сервер, настроенный на использование «файлов по умолчанию», таких как index.html, default.asp, index.php и один из них, показан.
  2. Веб-сервер не обнаружил файлов по умолчанию, и просмотр папок включен, и вы действительно увидите все файлы и подпапки
  3. Нет файлов по умолчанию, и просмотр папок отключен, и вы увидите сообщение об ошибке «просмотр папок отключен»
  4. SEO используется, и веб-серверы внутренне отсылают этот URL к определенному файлу.
0 голосов
/ 21 июня 2011

Вполне вероятно, что первый тип URL, который вы упомянули, был создан, просто имея файл с именем "index" внутри каталога с именем "services".Большинство веб-серверов по умолчанию ищут имя файла «index», если URL не указывает файл.

Учитывая тот факт, что 2-й пример представляет собой файл с расширением PHP, вполне вероятно, что файл, на который ссылается первый URL, - это "index.php".

0 голосов
/ 21 июня 2011

Первый URL либо обрабатывается чем-то вроде mod_rewrite или сервлетом Java (который может быть сопоставлен с любым путем), либо это просто индекс каталога. Практически любой веб-сервер позволит вам разместить страницу с заданным (часто настраиваемым) именем в каталоге, например index.html или index.php, и по умолчанию загружать эту страницу. Так, например, www.mysite.com/ фактически загружает www.mysite.com/index.html. Это работает и для подкаталогов.

0 голосов
/ 21 июня 2011

URL 1 не имеет расширения, такого как HTML или aspx. Но он отображает страницу. Можно ли узнать точное название отображаемой страницы? (не отображается в браузере)

Имя страницы будет текстом внутри элемента <title> (при условии HTML-документа). Нет никакого способа узнать имя файла, или даже если есть файл для начала. URL-адреса соответствуют ресурсам, и то, как сервер HTTP определяет ресурс, является деталью реализации сервера HTTP и совершенно не имеет отношения к клиенту.

(Время анекдота: друга не впечатлил тот факт, что его университет подсчитал содержание своего HTTP-сервера и проигнорировал директивы robots.txt, поэтому он написал скрипт для генерации случайных HTML-документов, содержащих случайные ссылки, и позволил ему потратить пару дни индексация полная бессмыслица на случайных URL, где все ресурсы были сгенерированы random.py. Не было никакого способа узнать, что random.py вызывали random.py извне сервера (или даже того, что он существовал, хотя это было относительно легко делать вывод)).

Точный URL : http://www.techwyse.com/services/ (могут быть и другие URL-адреса, которые разрешают использование идентичного ресурса, но этот - как написано).

Что мы называем такими URL-адресами, например URL2?

URL-адреса. (Если вы действительно хотите различить их, вы можете сказать «URL-адреса с чем-то, что в них выглядит как имя файла»).

0 голосов
/ 21 июня 2011

URL 1: просто вызывает каталог на сервере, а веб-сервер обслуживает документ по умолчанию.

В данном случае это http://www.techwyse.com/services/index.php (та же страница, что и URL 1). Вы можете попробовать, что это не совпадение, открыв http://www.techwyse.com/services/index2.php, который возвращает 404.

0 голосов
/ 21 июня 2011

Это называется SEO дружественные URL .

и с помощью PHP, чего можно достичь с помощью модуля apache mod_rewrite

РЕДАКТИРОВАТЬ: не прошли через опубликованные ссылки.

Здесь services - это каталог, поэтому будет выполнено имя файла, установленное с помощью DirectoryIndex в файле httpd.conf (обычно index.php, но можно изменить)

Вы также можете изменить этот файл, используя .htaccess.

Давайте сделаем быстрый тест, чтобы понять это.

Создайте файл в каталоге services и назовите его (например, test.php)

Создайте файл .htaccess и добавьте строку ниже

DirectoryIndex test.php

и затем перейдите к http://www.techwyse.com/services/

Теперь вы увидите test.php файл запускается вместо index.php

0 голосов
/ 21 июня 2011

Это делается путем перезаписи URL
http://msdn.microsoft.com/en-us/library/ms972974.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...