duanlei20082008 2014-06-23 08:51
浏览 45
已采纳

从尾部斜杠到查询(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!

  • 写回答

1条回答 默认 最新

  • douguwo2275 2014-06-23 09:10
    关注

    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]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?