0

我正在开发一个需要使用虚拟目录的链接系统。我设法设置了一个允许用户访问 domain.com/SjkpP/ 的系统,这与 domain.com/link.php?link=SjkpP 的效果相同,尽管尾部斜杠是必要的,并且当访问 domain.com 时/SjkpP 发生 404 错误。对于编辑和添加到 htaccess 文件,我非常糟糕,所以我想知道我可以添加什么来允许访问链接而不使用尾部斜杠?

当前的 .htaccess

RewriteEngine on
RewriteRule ([A-Za-z0-9]+)/ link.php?link=$1
4

1 回答 1

0

如果你想让尾部斜杠可选,你可以使用它来代替:

RewriteRule ^([A-Za-z0-9]+)/?$ link.php?link=$1

这使得最后的斜线是可选的(使用正则表达式?零或一匹配量词),但如果斜线出现,则不会捕获斜线(因为斜线出现在捕获虚拟目录名称的括号之外)。

请注意,由于您使用的是静默重定向,因此访问者的 Web 浏览器会认为它位于不是公共根目录的目录中。因此,任何指向页面装饰(例如图像、CSS 或 JavaScript 文件)的相对路径(不以正斜杠开头)都会导致浏览器尝试不存在的子目录,但什么也得不到。但是,您当前的修复导致浏览器认为它位于子目录中,因此如果到目前为止您没有遇到任何问题,那么用这个替换您的规则应该不会导致新问题。

于 2013-04-10T19:23:15.477 回答