如何允许用户;“选择权”;在PHP中创建自己的URL

如何允许用户;“选择权”;在PHP中创建自己的URL,php,mysql,.htaccess,mod-rewrite,Php,Mysql,.htaccess,Mod Rewrite,使用mod_rewrite使用$_GET['variable']获取信息/页面非常简单。如何为用户提供执行此操作的选项。例如:默认情况下,URL为blah.com/user?id=74378。现在他们可以手动创建自己的URL(如果可用)。这是怎么做到的?谢谢本页的第一部分,anything,将有助于其中anything=用户定义的字符串,u将该字符串作为固定页面上的GET变量进行处理 您可以维护一个包含所用URL列表的表。这是为了在url不可用时检查并警告用户。然后,如果用户尝试blah.com

使用mod_rewrite使用$_GET['variable']获取信息/页面非常简单。如何为用户提供执行此操作的选项。例如:默认情况下,URL为blah.com/user?id=74378。现在他们可以手动创建自己的URL(如果可用)。这是怎么做到的?谢谢

本页的第一部分,anything,将有助于其中anything=用户定义的字符串,u将该字符串作为固定页面上的GET变量进行处理


您可以维护一个包含所用URL列表的表。这是为了在url不可用时检查并警告用户。然后,如果用户尝试
blah.com/user/myspecialurl
,htaccess应该调用
blah.com/user?url=myspecialurl
。然后使用该表查找userid,并使用get变量获取内容


所有这一切都是在假设您对url有固定格式/限制的情况下进行的,即使用php模块mod_rewrite和htaccess中的规则:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
在index.php中:

$page = isset($_GET['page']) ? $_GET['page'] : 'index';
// filter var $page
// ..
// then include needed page
include './pages/'.$page;
// or get content from sql
sql(..WHERE page = $page..)

对,很简单。因此,与“if\u available\u url”表一起,我可以在“users”表中添加一个url列,默认设置为空,然后在用户指定url时更新它。在PHP脚本中,我可以创建一个if/else,用于查询是否设置了新URL。否则它将默认为如果设置了user_id。与任何项目一样,您需要小心使用数据库模式。根据用户表或url表中需要的详细信息类型,您可以直接使用
用户
表,或者在
如果url可用
表中添加
用户ID
字段。无论如何,模式是非常特定于您的需求的东西。