я хочу что-то вроде этого:
http://www.someniceandreliableurl.com/username
и поймать имя пользователя.
Я хочу сделать что-то вроде twitters / facebook / etc быстрых URL-адресов …
twitter.com/username
Как я могу сделать что-то подобное с php? =) Спасибо заранее.
Используйте mod_rewrite в файле .htaccess :
RewriteEngine on RewriteOptions MaxRedirects=1 RewriteCond %{REQUEST_FILENAME} -f [NC,OR] RewriteCond %{REQUEST_FILENAME} -d [NC] RewriteRule .* - [L] RewriteRule ^(.*)$ /foo.php/$1 [QSA,L]
Где foo.php – ваш скрипт для показа страниц быстрого URL.
Затем в foo.php (или как вы его назвали) вы можете поймать имя пользователя в $_SERVER['PATH_INFO']
.
Первые 5 строк включают mod_rewrite и позволяют игнорировать фактические файлы / папки / скрипты с помощью правила перезаписи. Последний переписывает все URL-адреса, которые не являются штрафами / папками / сценариями.
Вы можете использовать RewriteRule в apache для преобразования site.com/user, чтобы быть site.com/loadpage.php?user=user
RewriteEngine On RewriteRule ^/([a-z0-9]+) /load_user.php?user=$1 [NC,L,QSA]
Вам нужно попросить веб-сервер переписать этот URL-адрес в строку запроса с данными, доступ к которым вы можете получить с PHP. Сделайте свой PHP-скрипт для работы с URL-адресами
http://www.someniceandreliableurl.com/?user=username
Затем убедитесь, что apache установил mod_rewrite и вам разрешено использовать .htaccess. Затем создайте файл .htaccess с правилом перезаписи, например
RewriteEngine On RewriteRule ^/(.*)$ /?user=$1 [QSA]
Оформить заказ ModRewrite в Apache или использовать инфраструктуру php, которая предлагает маршрутизацию. Обычно это зависит от переменной $ENV['PHP_SELF']
которая позволяет вам делать гораздо больше в вашем php-коде, который вам обычно нужно делать в ModRewrite. Он вернет часть URL-адреса после имени хоста, чтобы вы могли делать URL-адреса, например http://exmaple.com/index.php/username/profile .