Apache 随文件一起重写目录的条件
任何人请帮助我。我是新来的。htaccess 我想检查以下情况Apache 随文件一起重写目录的条件,apache,.htaccess,Apache,.htaccess,任何人请帮助我。我是新来的。htaccess 我想检查以下情况 RewriteCond : IF !index.html AND !app/facebookapp/{[a-zA-Z0-9-/]}.html RewriteRule : ..... 我的代码是 RewriteCond %{REQUEST_URI} !index\.html RewriteCond %{REQUEST_URI} app/facebookapp/^([a-zA-Z0-9-/]+).html$ RewriteRule
RewriteCond : IF !index.html AND !app/facebookapp/{[a-zA-Z0-9-/]}.html
RewriteRule : .....
我的代码是
RewriteCond %{REQUEST_URI} !index\.html
RewriteCond %{REQUEST_URI} app/facebookapp/^([a-zA-Z0-9-/]+).html$
RewriteRule ......
它不起作用
还有一个问题
如果请求url为header.html
RewriteCond %{REQUEST_URI} header.html$
RewriteRule ^([a-zA-Z0-9-/]+).html$ position.php?position=$1 [L]
$l
将返回标题
如果请求url为app/facebookapp/header.html
我们编写相同的上述条件$l
将返回app/facebookapp/header
。我的问题是如何仅获取文件名
谢谢第1部分:
在我看来你把^字符放错地方了。在正则表达式语法中,这表示文本的开头,但前面有一些文本。你可以把它放在最前面,但我认为在这种情况下,你可以把它扔掉。试试这个:
RewriteCond %{REQUEST_URI} !index\.html
RewriteCond %{REQUEST_URI} app/facebookapp/([a-zA-Z0-9-/]+).html$
RewriteRule ......
第2部分:
您需要两个匹配的组,并且只使用右侧的第二个组。第一个包含/作为有效字符,第二个不包含。让我知道这是否更有效:
RewriteCond %{REQUEST_URI} header.html$
RewriteRule ^([a-zA-Z0-9-/]+)/?([a-zA-Z0-9-]+).html$ position.php?position=$2 [L]
谢谢Benjamin Cox…1个问题的答案是正确的…第2个问题…
$2
如果app/facebookapp/head.html
,则只返回最后一个字符…它返回d
哇-忘记了组之间的位。。。。我已经更新了,你能试试新版本吗?没有?
运行良好,例如:^([a-zA-Z0-9-/]+)/([a-zA-Z0-9-]+)。html$