我想用PHP创建一个简单的社交网络,每个用户都有一个共享其图像和文本的配置文件。
我有一个问题要添加功能,用户可以通过该功能访问他的个人资料,如Facebook,Instagram等,如下所示:
my website.com/user1
不是这个:mywebsite.com/@user1
答案 0 :(得分: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。
答案 1 :(得分: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获取用户名,可以使用$ match变量,如下所示:
$username = $match["params"]["username"];