как обрабатывать URL без создания каталогов - PullRequest
0 голосов
/ 24 января 2011

У меня есть структура моего домена как domain.com/username (как в твиттере / facebook и т. Д.).

Насколько мне известно, я должен создать каталог с именем пользователя и поместить в него файлы для просмотра с этого URL.

Существует ли лучший способ обработки URL-адреса без создания каталогов для каждого пользователя, а только путем извлечения URL-адреса и выяснения, для какой страницы пользователя он предназначен, и загрузки пользовательских данных из базы данных из основного домена только (т.е. страница индекса domain.com) ??

Ответы [ 2 ]

2 голосов
/ 24 января 2011

mod_rewrite

http://www.workingwith.me.uk/articles/scripting/mod_rewrite

По сути, ваш "реальный" URL будет выглядеть как domain.com/profile.php?name=Andrew, и он будет отображать всю информацию для пользователя с таким именем.Затем вы можете использовать mod_rewrite и сделать domain.com/andrew «ярлыком» для domain.com/profile.php?name=Andrew.

Только что протестировал, и все заработало:

profile.php -

<?php

echo '<h1>' . ucwords($_GET['name']) . '</h1>';

?>

.htaccess -

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ profile.php?name=$1 [L]

Когда я посещаю http://localhost/andrew, Я вижу свое имя, как и должен был.

1 голос
/ 24 января 2011

Да, переписывая все запросы, которые не являются реальными файлами, в скрипт PHP, который отображает данные запрошенного пользователя.Поместите это в ваш файл .htaccess или httpd.conf, чтобы использовать mod_rewrite от Apache:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /username.php [L]

Затем username.php может посмотреть на $_SERVER['REQUEST_URI'], чтобы увидеть URL, выбрать имя пользователя и отобразить соответствующий контент..

...