像site.com/user1显示用户的个人资料

问题描述 投票:0回答:2

我想用PHP创建一个简单的社交网络,每个用户有分享他的图片和文字的轮廓。

我有我想要添加功能的问题,即用户将在访问他的个人资料,如Facebook,Instagram的和等象下面这样:

my website.com/user1

不是这个:mywebsite.com/@user1

php url nginx social-networking
2个回答
0
投票

对于使用nginx,请参考此答案https://stackoverflow.com/a/53415110/6749661

还有,你可以做到这一点的一些方法,如@ MRustamzade的回答,您可以更改.htaccess文件包含这样的代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ /user.php?username=$1 [L] //update user.php?username to your users profile route.

您也可以使用路由器架构,如Altorouter它允许你这样做,并有大量的页面。

随着Altorouter你可以设置一些路由规则,进行简单的设置可以包括:

$router = new AltoRouter();
$router->map( 'GET', '/profile/[*:username]', 'views/profile_view.php', 'home' );

$match = $router->match();

if($match) {
  header("HTTP/1.1 200 OK");
  require $match['target'];
} else {
  header("HTTP/1.0 404 Not Found");
  echo "Error 404 - File not found";
}

使用此代码可以让你去site.com/profle/username会去views/profile_view.php

为了得到从PHP中的URL的用户名,你可以使用$匹配变量,是这样的:

$username = $match["params"]["username"];

2
投票

创建.htaccess文件,加入:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ /user.php?username=$1 [L] //update user.php?username to your users profile route.

如果您有关于.htaccess文件有任何疑问,那么请检查this link

© www.soinside.com 2019 - 2024. All rights reserved.