我需要一个mod_rewrite规则,我无法自己解决。
请求网址可以是:
[(i,v) for i,v in reversed(list(enumerate('ABCDEFG'))[::-1])]
在https://image.domain.com/sub.domain.com/400x400/image.jpg
中,我想检查以下文件是否存在:
.htaccess
如果此文件存在,则应该提供该文件。如果不存在,则继续执行下一个mod_rewrite规则。
mod_rewrite可以吗?如果是,怎么样?
答案 0 :(得分:1)
如果此代码不存在,请创建sub.domain.com/.htaccess
:
RewriteEngine On
# ignore files and directories from all rewrite rules
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule (^|/)index\.php$ - [L,NC]
RewriteCond %{DOCUMENT_ROOT}/sub.domain.com/cache/$1 -f
RewriteRule ^(?!cache/)(.+\.\w+)$ cache/$1 [L,NC]
#Else go to controller
RewriteRule ^(|(.*)/)([0-9]+x[0-9]+|[a-z]+[0-9]+|original)/(.*)$ ../index.php?path=$4&format=$3&folder=sub.domain.com [L,QSA]
<强>解释强>
(?!cache/)
- 否定前瞻以忽略已有cache/
(.+\.\w+)
- 匹配任何至少包含扩展名的请求,并在$1
RewriteCond
,用于检查请求是否不适用于现有文件或目录RewriteCond
使用$1
目录中的完整路径检查是否存在cache/
文件cache/