.htaccess 虚拟目录重定向
我正在开发一个需要使用虚拟目录的链接系统。我已经设法设置了一个允许用户访问domain.com/SjkpP/的系统,该系统提供了与domain.com/link.php?link=SjkpP相同的效果,尽管尾部斜杠是必需的,并且当访问domain.com/SjkpP时会出现404错误。我在编辑和添加htaccess文件方面做得很差,所以我想知道我可以添加什么来允许访问链接而不必使用尾部斜杠 当前.htaccess.htaccess 虚拟目录重定向,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在开发一个需要使用虚拟目录的链接系统。我已经设法设置了一个允许用户访问domain.com/SjkpP/的系统,该系统提供了与domain.com/link.php?link=SjkpP相同的效果,尽管尾部斜杠是必需的,并且当访问domain.com/SjkpP时会出现404错误。我在编辑和添加htaccess文件方面做得很差,所以我想知道我可以添加什么来允许访问链接而不必使用尾部斜杠 当前.htaccess RewriteEngine on RewriteRule ([A-Za-z0-9]
RewriteEngine on
RewriteRule ([A-Za-z0-9]+)/ link.php?link=$1
如果要使尾部斜杠成为可选的,可以使用以下选项:
RewriteRule ^([A-Za-z0-9]+)/?$ link.php?link=$1
这使得最后一个斜杠是可选的(使用regex?
零或一个匹配量词),但如果斜杠出现,则不会捕获它(因为斜杠出现在捕获虚拟目录名的括号外)
请注意,因为您使用的是静默重定向,所以访问者的web浏览器会认为它位于一个不是公共根目录的目录中。因此,任何指向页面装饰(如图像、CSS或JavaScript文件)的相对路径(不以正斜杠开头)都会导致浏览器尝试不存在的子目录,但什么也没有得到。但是,您当前的修复程序会使浏览器认为它位于子目录中,因此,如果您目前没有遇到任何问题,则使用此修复程序替换您的规则不会产生新问题。通过添加
RewriteRule^([a-Za-z0-9]+)$/$1/