我想为pdf文件创建规则 domain.com/folder/directory/filename.pdf 可通过 domain.com/filename.pdf 访问,因此我创建了以下规则:
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/qualita/certificati/$1.pdf [NC,L]
有效。现在,我想对另一个文件夹中的另一个文件执行相同的操作,所以我要添加第二条规则:
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/catalogo/$1.pdf [NC,L]
它不起作用。它给我错误404。 我认为这是因为第一条规则。即使我添加了[L]标志,如何使所有.pdf文件都可以访问,例如 domain.com/filename.pdf ?
答案 0 :(得分:1)
也许像这样双重重写(未经测试)
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/qualita/certificati/$1.pdf
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^\/images\/qualita\/certificati\/([a-zA-Z0-9_\.-]*)\.pdf$ /images/catalogo/$1.pdf
答案 1 :(得分:1)
尝试一下:
RewriteCond %{DOCUMENT_ROOT}/images/qualita/certificati%{REQUEST_URI}\.pdf -f
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/qualita/certificati/$1.pdf [NC,L]
RewriteCond %{DOCUMENT_ROOT}/images/catalogo%{REQUEST_URI}\.pdf -f
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/catalogo/$1.pdf [NC,L]
这些规则将首先检查请求是否针对/images/qualita/certificati/
目录,然后检查另一个目录/images/catalogo/
。
如果您需要先检查/images/catalogo
,请先进行第三和第四行。
请注意,如果两个目录中都有相同的文件,则优先考虑第一个。