Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Regex Apache2:基于URL的重定向_Regex_Apache_Mod Rewrite - Fatal编程技术网

Regex Apache2:基于URL的重定向

Regex Apache2:基于URL的重定向,regex,apache,mod-rewrite,Regex,Apache,Mod Rewrite,我在Apache2上,在目录“/demo”中。在这个目录中有: v1/index.html v2/index.html 我想这样重定向: “/demo”、“/demo/”和“/demo/*”=>v1/index.html “/demo/static”、“/demo/static/”和“/demo/static/*”=>v2/index.html 我试过这个,但没用: RewriteCond %{REQUEST_URI} !static [NC] RewriteRule .* v1/ind

我在Apache2上,在目录“/demo”中。在这个目录中有:

  • v1/index.html
  • v2/index.html
我想这样重定向:

  • “/demo”、“/demo/”和“/demo/*”=>v1/index.html
  • “/demo/static”、“/demo/static/”和“/demo/static/*”=>v2/index.html
我试过这个,但没用:

RewriteCond %{REQUEST_URI} !static [NC]
RewriteRule .* v1/index.html [L]

RewriteCond %{REQUEST_URI} static [NC]
RewriteRule .* v2/index.html [L]
有人知道如何使这项工作吗

其他详情: 根目录在这里:
/var/www/dev
,包含我的目录演示。htaccess在目录demo中

那么:

RewriteEngine On
RewriteRule .*demo/static.* v2/index.html [L] 
RewriteRule .*demo.* v1/index.html

因为我不知道这里的文档根是什么,所以我使用了。*,所以它可以捕获比您想要的更多的内容,但这可以作为一个起点。

也许这是一个解决方案

RewriteRule ^static/?$ v2/index.html [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ v1/index.html

我不得不等待管理员的答复。根目录在这里:
/var/www/dev
,包含我的目录演示。htaccess在目录demo中。抱歉,您的代码不起作用。我在尝试访问_example.com/demo/static时遇到此错误:
在此服务器上找不到请求的URL/demo/static。
我想我知道会发生什么:apache尝试从v2重定向到v1。这似乎可行,但非常难看:
RewriteRule demo v2/index.html[NC,L]RewriteCond%{REQUEST_URI}!v2/index.html$RewriteRule.*v1/index.html[NC,L]