我正在开发一个需要使用虚拟目录的链接系统。我设法设置了一个允许用户访问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
答案 0 :(得分:0)
如果你想使尾随斜线可选,你可以改用:
RewriteRule ^([A-Za-z0-9]+)/?$ link.php?link=$1
这使得最终斜杠可选(使用正则表达式?
零或一匹配量词)但如果它出现则不捕获斜杠(因为斜杠出现在捕获虚拟目录名称的括号外面) )。
请注意,因为您正在使用静默重定向,访问者的Web浏览器会认为它位于不是公共根目录的目录中。因此,指向页面修饰的任何相对路径(不以正斜杠开头)(例如图像,CSS或JavaScript文件)将导致浏览器尝试不存在的子目录并且什么都不做。但是,您当前的修复程序导致浏览器认为它位于子目录中,因此如果您到目前为止没有遇到任何问题,那么用这个替换规则应该不会产生任何新问题。