2009-04-22 4 views
3

Предположим, у меня есть url http://example.com/user/me, где я - имя пользователя. Когда пользователь вводит URL-адрес в адресную строку, я хочу показать детали пользователя. Я не хочу, сайты, например http://example.com/user.php?user=meКак читать читаемые URL?

Оценил Любая помощь, работая на ЛАМПА

+0

Вы смотрите, как сделать что-то подобное в своем собственном коде или изменить SO? (Предложите быстрое разъяснение, в противном случае это будет принято как предложение для SO, которое принадлежит голосовому голосу пользователя.) – Richard

+0

в моем коде, url должен был легко получить информацию – 2009-04-22 09:51:22

+0

Ознакомьтесь с этим [mod_rewrite tutorial] (http: //www.workingwith. me.uk/articles/scripting/mod_rewrite) –

ответ

5

Один из способов сделать это с помощью модуля Апача под названием mod_rewrite. Затем вы можете переписать URL-адреса для , чтобы указать на /user.php?user=$1

Для получения дополнительной информации обратитесь к документации для mod_rewrite.

4

Самый простой способ будет (в .htaccess, в конфигурации сервера или в конфигурации ВХосты):

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

Это будет пересылать все ваши запросы, которые не соответствуют файл, каталог или символьная ссылка на ваш index.php. Там вы можете проверить URI запроса, чтобы определить, что делать. На самом деле вам понадобится диспетчер, который знает, как деконструировать URL-адрес, чтобы определить, какие действия следует предпринять. На самом деле это может привести к некоторой реализации MVC, но это не является обязательным требованием.

+0

hey, echo $ _GET ['u']; echo "
"; $ count = strlen ($ _ SERVER ['PHP_SELF']); echo "first count; $ count
"; $ nme = $ count - strlen (pete); echo "second count; $ nme
"; echo substr ($ _ SERVER ['PHP_SELF'], $ nme); ? – 2009-04-22 09:40:39

+0

также вышесказанное делает только этот http://stackoverflow.com/user/me/ , а не этот http://stackoverflow.com/user/me обратите внимание на "/" – 2009-04-22 09:50:34

0
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?u=$1