好的,所以我的htaccess文件首先重写任何网址以包含完整地址。我需要这个,因为facebook对应用程序ID的网址很挑剔。
现在,我正在构建的这个站点是一个使用PHP和MYSQL构建的各种业务概要站点。配置文件页面可以根据ID号或唯一的slug id进行查询,该ID用作企业在希望人们链接到其个人资料时使用的易于阅读的URL。所以我有重写引擎将字符串放入URL中的变量,以便配置文件页面可以获取字符串并使用它来查询。截至目前,它将重写任何不存在的URL或文件,并将其发送到配置文件页面。这似乎有点草率,因为我不希望用户输入错误的URL,例如,联系页面,而是发送到无效的个人资料页面。这是规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* profile.php?uniqueID=$0 [L]
现在,我认为我能做到的唯一真正的方法是让网址更加独特,所以我不是www.bizprofiles.com/uniqueprofilename
作为基本结构,而是www.bizprofiles.com/profils/uniqueprofilename
而是写了条件与网址完全匹配,直到唯一名称。
我想知道是否有人有更好的想法?
答案 0 :(得分:1)
.htaccess无法检查您的业务逻辑,例如如果个人资料存在。你必须在profile.php中检查并重新定向,如:
header('HTTP/1.0 404 Not Found');
header('Location: /your404File.php');
exit;
我认为第二个结构www.bizprofiles.com/profils/uniqueprofilename
(我认为拼写错误应该是profiles
或profile
)会更具可读性,并让您有机会扩展网站不同的.htaccess规则在某些时候。