.htaccess重写条件请求\u文件名
我从第三方(vBSEO)创建的.htaccess文件中包含以下内容:.htaccess重写条件请求\u文件名,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我从第三方(vBSEO)创建的.htaccess文件中包含以下内容: 如果我已经确定第2行中不存在该目录,为什么需要第三行(“如果请求不是此特定目录”)?第二行不是说“如果请求不是目录”吗?第二行的意思确实是“请求的文件名不是物理目录”。然而,第三行表示“请求的文件名不包含任何序列/admincp/或/modcp/etc”。你看,它是一个正则表达式,因为它不使用锚点^(表示字符串的开始)或$(表示字符串的结束),所以它匹配任何只包含这些目录名的字符串 因此.htaccess说,如果不是针对现有资
如果我已经确定第2行中不存在该目录,为什么需要第三行(“如果请求不是此特定目录”)?第二行不是说“如果请求不是目录”吗?第二行的意思确实是“请求的文件名不是物理目录”。然而,第三行表示“请求的文件名不包含任何序列/admincp/或/modcp/etc”。你看,它是一个正则表达式,因为它不使用锚点
^
(表示字符串的开始)或$
(表示字符串的结束),所以它匹配任何只包含这些目录名的字符串
因此.htaccess说,如果不是针对现有资源,并且请求的文件名不在这些目录中,我们应该将所有请求重定向到vbseo.php
/admincp/index.html
不会被重定向(假设index.html存在)。请注意,/foo/bar/admincp/baz/qux
也不会被重定向。第二行确实表示“请求的文件名不是物理目录”。然而,第三行表示“请求的文件名不包含任何序列/admincp/或/modcp/etc”。你看,它是一个正则表达式,因为它不使用锚点^
(表示字符串的开始)或$
(表示字符串的结束),所以它匹配任何只包含这些目录名的字符串
因此.htaccess说,如果不是针对现有资源,并且请求的文件名不在这些目录中,我们应该将所有请求重定向到vbseo.php
/admincp/index.html
不会被重定向(假设index.html存在)。请注意,/foo/bar/admincp/baz/qux
也不会被重定向。前两行确保如果请求是现有文件或目录的名称,则不会将任何请求重定向到vbseo.php。但是,第三行确保请求不会被重定向,即使它们不存在,如果它们包括/(admincp |…)/
不过,更重要的是,第三行允许在vbseo重定向之后提供非文件或目录的资源
RewriteRule ^blogs$ blogorama.php [L]
例如,如果无法通过文件系统访问/blogs/。如果请求是现有文件或目录的名称,则前两行确保不会将任何请求重定向到vbseo.php。但是,第三行确保请求不会被重定向,即使它们不存在,如果它们包括/(admincp |…)/ 不过,更重要的是,第三行允许在vbseo重定向之后提供非文件或目录的资源
RewriteRule ^blogs$ blogorama.php [L]
例如,如果无法通过文件系统访问/blogs/。那么,如果请求“不针对现有资源”,那么“请求的文件名[不能]位于这些目录中的任何一个”,那么我的问题仍然是:如果请求根本不存在,为什么要确保请求不在这些目录中?而且“/admincp/index.html将不会被重定向”,即使假设index.html不存在。哈哈!是的,我得到一个警告,这个问题已经被浏览了2500次,所以我又看了一遍,忘记了为什么这个答案有意义我也不得不绞尽脑汁考虑措辞。我在想什么。但我是在早上四点写的,所以……好吧,如果请求“不是针对现有资源”,那么“请求的文件名[不能]在这些目录中的任何一个”,所以我的问题仍然是:如果请求根本不存在,为什么要确保请求不在这些目录中?而且“/admincp/index.html将不会被重定向”,即使假设index.html不存在。哈哈!是的,我得到一个警告,这个问题已经被浏览了2500次,所以我又看了一遍,忘记了为什么这个答案有意义我也不得不绞尽脑汁考虑措辞。我在想什么。但是我在早上四点写的,所以。。。