Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 虚拟目录重定向_.htaccess_Mod Rewrite - Fatal编程技术网

.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]

我正在开发一个需要使用虚拟目录的链接系统。我已经设法设置了一个允许用户访问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

如果要使尾部斜杠成为可选的,可以使用以下选项:

RewriteRule ^([A-Za-z0-9]+)/?$ link.php?link=$1
这使得最后一个斜杠是可选的(使用regex
零或一个匹配量词),但如果斜杠出现,则不会捕获它(因为斜杠出现在捕获虚拟目录名的括号外)


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

通过添加
RewriteRule^([a-Za-z0-9]+)$/$1/