Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
Apache 随文件一起重写目录的条件_Apache_.htaccess - Fatal编程技术网

Apache 随文件一起重写目录的条件

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

任何人请帮助我。我是新来的。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 ......
它不起作用

还有一个问题

如果请求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$