Get username from URL in PHP

2019-03-29 07:22发布

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.

标签: php url parsing
4条回答
小情绪 Triste *
2楼-- · 2019-03-29 07:55

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]
查看更多
再贱就再见
3楼-- · 2019-03-29 07:58

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]
查看更多
SAY GOODBYE
4楼-- · 2019-03-29 07:58

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.

查看更多
ら.Afraid
5楼-- · 2019-03-29 08:11

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.

查看更多
登录 后发表回答