简体   繁体   中英

From trailing slash to query (PHP/.htaccess)

I would like to keep the links in the address bar as short and clean as possible, for example:

http://example.com/th1ng

If in the database there is a row with 'th1ng' as username, the above link should work like

http://example.com/user.php?name=th1ng

while still showing the first, clean link in the address bar.


If the user doesn't exist, it shows/redirects to the 404 page.

Also, there are other files and directories that will need to be access via the trailing slash too. And it is possible there is a GET query on top as well, like

http://example.com/th1ng?img=13805

which should act like

http://example.com/user.php?name=th1ng?img=13805

I got all of the PHP stuff, including the database check and redirecting to the 404 in case the user doesn't exist.

But.. what would be the proper way to get around showing the clean link in the address bar? With other files and directories on the server still being accessible as well. I can only assume some .htaccess needs to be used but I don't see how exactly.

Thanks for the help!

You will need to use mod_rewrite for that. This would then be placed in the .htaccess.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ user.php?name=$1 [QSA,L]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM