pojomx
pojomx

Reputation: 790

Get username from URL in PHP

i want something like this:

http://www.someniceandreliableurl.com/username

and catch the username.

I want to make something like twitters/facebook/etc quick urls...

twitter.com/username

How can i make something like this with php? =) thank you in advance.

Upvotes: 5

Views: 3518

Answers (4)

Jakub Hampl
Jakub Hampl

Reputation: 40563

Checkout ModRewrite in Apache or use a php framework that offers routing. This is generally based on the $ENV['PHP_SELF'] variable which lets you do much more in your php code that you would normally have to do in ModRewrite. It will return the part of the url after the hostname so you can do urls like http://exmaple.com/index.php/username/profile.

Upvotes: 0

Mitch Dempsey
Mitch Dempsey

Reputation: 39939

You can use a RewriteRule in apache to transform a site.com/user to be site.com/loadpage.php?user=user

RewriteEngine On
RewriteRule ^/([a-z0-9]+)  /load_user.php?user=$1 [NC,L,QSA]

Upvotes: 6

Johan
Johan

Reputation: 5063

You need to ask the webserver to rewrite that url to a query string with data that you can access from PHP. Do your PHP script to work with urls like

http://www.someniceandreliableurl.com/?user=username

Then ensure that apache have mod_rewrite installed and that you are allowed to use .htaccess. Then create a .htaccess file with a rewrite rule, like

RewriteEngine On
RewriteRule   ^/(.*)$ /?user=$1 [QSA]

Upvotes: 1

Joshua
Joshua

Reputation: 215

Use mod_rewrite in your .htaccess file:

RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
RewriteCond %{REQUEST_FILENAME} -d [NC] 
RewriteRule .* - [L]
RewriteRule ^(.*)$ /foo.php/$1 [QSA,L]

Where foo.php is your script for showing the quick url pages.

Then in foo.php (or whatever you named it) you can catch the username in $_SERVER['PATH_INFO'].

The first 5 lines turn on mod_rewrite and allow actual files/folders/scripts to be ignored by the rewrite rule. The last one rewrites all the urls that aren't fines/folders/scripts.

Upvotes: 8

Related Questions