Как вы создаете domain.com/?stringhere без расширения .php - PullRequest
1 голос
/ 06 мая 2010

Я хочу создать ссылку, подобную следующей:

http://www.myurl.com/?IDHERE

То, что я хочу иметь, - это перейти по указанной выше ссылке, а затем нажать что после? (в данном случае IDHERE) и сможет использовать эту информацию для поиска MySQL и возврата страницы.

Кто-нибудь может указать мне правильное направление? пожалуйста, знайте, что это использует PHP, а не ASP

Ответы [ 6 ]

3 голосов
/ 06 мая 2010

Проблема здесь не в вашем языке сценариев, а в настройке вашего веб-сервера. Я буду ссылаться на них по именам Apache, но эти функции должны быть доступны на большинстве веб-серверов.

Существует три функции, которые вы можете использовать:

1) согласование содержимого (mod_negotiation), которое позволяет вашему веб-серверу попробовать указанный список расширений в указанном порядке, например: http://example.com/foo может быть http://www.example.com/foo.html или http://example.com/foo.php

2) DirectoryIndex, который сообщает веб-серверу, что когда клиент запрашивает http://example.com, он должен искать указанный список файлов по порядку, поэтому он может работать на сервере http://example.com/index.html или http: /example.com/index.php

3) mod_rewrite, который позволяет вам переписать формат URL, полученный сервером. Это позволяет вам делать такие вещи, как перевод http://example.com/foo/bar/baz на http://example.com/foo/bar.php?page=baz

Все остальное выполняется кодом скрипта бэкэнда как обычно.

1 голос
/ 06 мая 2010

Создайте файл PHP по умолчанию в этом каталоге, который будет загружаться, если имя файла не указано (например, index.php). В вашем PHP-скрипте вы можете получить часть после знака вопроса из переменной $_SERVER['QUERY_STRING'].

0 голосов
/ 06 мая 2010

Я бы решил это, используя файл .htaccess, если это возможно.

создайте файл .htaccess в главном каталоге с содержимым:

RewriteEngine on
RewriteRule cat/(.*)/(.*)/(.*)/$ /$1/$2.php?$3

, которое следует перевести "example.com/ foo / bar / baz "to" example.com/foo/bar.php?page=baz"

0 голосов
/ 06 мая 2010
list($id) = array_keys($_GET);
// right now, $id represents the ID you're looking for.
// Do whatever you want with it.

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

0 голосов
/ 06 мая 2010

В ссылке, форме или как угодно - index.php? Id = someid

В вашем файле index.php:

$_GET['id'] = $id

Теперь вы можете использовать его:

например.

echo $id;

Поскольку это ваша страница по умолчанию, она будет работать без расширения.

0 голосов
/ 06 мая 2010

Выполните следующие действия на главной странице вашего сайта index.php:

list($id) = array_keys($_GET);
// right now, $id represents the ID you're looking for.
// Do whatever you want with it.
...