как построить URL - PullRequest
       21

как построить URL

1 голос
/ 29 октября 2011

У меня есть сомнения по поводу того, как создается такая ссылка:

http://stackoverflow.com/questions/ask

ну, в общем, я хотел бы знать, как создать подобную ссылку.Ask это страница?расширение (php, asp, ...) удалено mod_rewrite?

обычно на моих сайтах у меня всегда один и тот же URL www.something.com.все звонки сделаны ajax.Или, альтернативно, что-то вроде: www.something.com/?section=contacts

спасибо

Ответы [ 6 ]

2 голосов
/ 29 октября 2011

Термин для того, что вы ищете, это "дружественные URL"

Так, например, ваша ссылка www.something.com/?section=contact станет www.something.com/section/contact

Это "дружелюбнее"человек, смотрящий на адрес (не имеет значения, если вы беспокоитесь о SEO - машинам все равно).

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

Обычно это выполняется с помощьюфайл называется .htaccess.Вы можете прочитать руководство по использованию .htaccess для создания дружественных URL-адресов здесь: http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

1 голос
/ 29 октября 2011

Ну, StackOverflow ASP.NET MVC, так что там нет mod_rewrite, но это не главное. :)

Один из типичных подходов для приложений, подобных этим, заключается в том, что mod_rewrite (или любой другой эквивалент) направляет все запросы в один и тот же файл (скажем, файл PHP). Затем этот файл просматривает все части («вопросы», «спрашивать» и т. Д.) И решает, что делать.

Но фактический URL имеет очень мало общего с тем, какой файл фактически обрабатывается. Это также очень гибко, потому что вы можете сделать свои URL намного «красивее» и легче для чтения людьми. Google тоже любит их.

0 голосов
/ 29 октября 2011

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

0 голосов
/ 29 октября 2011

Эти URL-адреса называются «чистыми URL-адресами», чтобы создать эти чистые URL-адреса, вы можете использовать механизм переписывания URL-адресов mod_rewite.

В чистом URL, таком как http://www.somedomain.ext/category/some-page, «категория» и «некоторая страница» обычно являются параметрами динамической страницы. Механизм переписывания может переписать указанный выше URL-адрес на http://www.somedomain.ext/index.php?cat=category&page=some-page.

0 голосов
/ 29 октября 2011

Есть 2 основных способа.

1 - Создайте папку, и внутри нее есть index.php - index.php (и index.html) обычно ищутся первыми. Это самый простой способ, который не часто используется на больших сайтах.

http://whatever.com/questions/ask

можно переписать как:

http://whatever.com/questions/ask/index.php

2 - Вы можете переписать URL на сервере. Пример из codeigniter с использованием файла .htaccess:

<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteCond %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)  
RewriteRule ^(.*)$ /index.php/$1 [L]  
</IfModule>    

Третье правило помещает index.php перед чем-либо еще в URL после домена. По сути, это позволяет вам написать URL-адрес как в stackoverflow и виртуально преобразовать его в URL-адрес, подобный вашему.

0 голосов
/ 29 октября 2011

Определение «URL» находится в RFC1738

«Дружественное» объяснение URI («Универсальных идентификаторов ресурсов»), URL («Локаторы ресурсов») и URN (Имена ресурсов) можно найти во многих местах, в том числе здесь, в Википедии:

http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

Из RFC 1738:

http://<host>:<port>/<path>?<searchpart>

PS: В качестве отдельного вопроса, вот хорошее резюме mod_rewrite:

http://en.wikipedia.org/wiki/Mod_rewrite

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