Apache重写规则模式

Apache重写规则模式,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我正在为web资源管理编写一个.htaccess文件 我希望将此URI模式用于静态资源 ^.*/web-console/static/(.*)$ 我的规则如下 RewriteRule "^.*/web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L] 并且,我请求以下URI http://myhost/shop/web-console/static/css/default.css 但是Apach

我正在为web资源管理编写一个.htaccess文件

我希望将此URI模式用于静态资源

^.*/web-console/static/(.*)$
我的规则如下

RewriteRule "^.*/web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L]
并且,我请求以下URI

http://myhost/shop/web-console/static/css/default.css
但是Apache服务器没有匹配的URI。
如果我删除“/web控制台”,Apache工作正常。
以下是规则

RewriteRule "^.*/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L]
什么是问题

附录 这是我的目录结构

网络基础-/data/web
网站库-/data/web/shop
htaccess-/data/web/shop/.htaccess
路由器脚本-/data/web/shop/route.php
静态资源-/data/web/shop/resources/flowworks-web-console-1.0/static
css文件-/data/web/shop/resources/flowworks-web-console-1.0/static/css/default.css

因此,如果URI已启动/shop/web控制台/static,我希望响应静态资源

另一种情况是使用“RewriteRule.*route.php[L]”传递到路由器脚本。

您应该可以这样做。如果您在子文件夹
shop
中有此.htaccess,则应添加rewritebase

RewriteEngine On
RewriteBase /shop/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "^web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L]
我发现我自己

RewriteRule "web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [END]
我会将该标志从
L
更改为
END


谢谢。

所以web控制台不是一个真正的目录?是的,这不是一个真正的目录。我需要更多的解释,而不是不工作,或者我无法帮助您排除故障。什么不起作用?有错误吗?.htaccess文件位于何处?你的资源目录在哪里,在根目录下还是在商店下?哦,对不起,我的描述。我的意思是重写规则并没有赶上URI。如果该工作显示了我的default.css文件内容,但它没有按照下面的语句“RewriteRule.*.route.php[L]”捕获并工作。并且我的.htaccess文件位于/data/web/shop folder中,我的default.css文件位于/data/web/shop/resources/flowworks-web-console-1.0/static/css/default.csw哪个文件夹被认为是您的文档根apache?网络还是商店?URL www.example.com/shop是什么意思?