2013-04-09 173 views
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 
+2

通过添加'RewriteRule ^([A-Za-z0-9] +)$/$ 1 /'' – user2259473 2013-04-09 17:05:56

回答

0

如果你想尾随斜线可选的,你可以使用它代替:

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

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

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