RewriteCond 的不区分大小写的文件检查
Case-insensitive file check for RewriteCond
我有一个 .htaccess 文件,用于测试特定文件,运行如果存在 PHP 脚本,如果不存在则重定向到另一个网站。
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/directory/ -f
RewriteRule ^(.+\.png)$ process.php?file= [QSA]
RewriteRule ^(.+\.png)$ http://other.website.com/
我可以直接 运行 PHP 脚本并进行重定向,但这种方式更快。但是,我需要使 RewriteCond
检查不区分大小写。我已尝试设置所有标志并启用拼写检查,但无济于事。
RewriteEngine on
CheckSpelling on
RewriteCond %{DOCUMENT_ROOT}/directory/ -f [NC]
RewriteRule ^(.+\.png)$ process.php?file= [QSA,NC]
RewriteRule ^(.+\.png)$ http://other.website.com/
拼写模块在httpd.conf中启用,.htaccess文件可以修改所有可能的设置,但它仍然和以前一样工作,如果输入不同大小写文件名的文件则不会重定向。
尝试在 Apache 配置中使用 tolower
映射。首先,create a map 用于 httpd.conf
中的 tolower
调用(或 apache2.conf
或 VHost 配置):
RewriteMap lc int:tolower
接下来,在您的条件检查中,将 </code> 转换为小写:</p>
<pre><code>RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/directory/${lc:} -f [NC]
RewriteRule ^(.+\.png)$ process.php?file= [QSA,NC]
RewriteRule ^(.+\.png)$ http://other.website.com/
请注意,要使上述方法正常工作,您的文件应始终使用小写字母。
我有一个 .htaccess 文件,用于测试特定文件,运行如果存在 PHP 脚本,如果不存在则重定向到另一个网站。
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/directory/ -f
RewriteRule ^(.+\.png)$ process.php?file= [QSA]
RewriteRule ^(.+\.png)$ http://other.website.com/
我可以直接 运行 PHP 脚本并进行重定向,但这种方式更快。但是,我需要使 RewriteCond
检查不区分大小写。我已尝试设置所有标志并启用拼写检查,但无济于事。
RewriteEngine on
CheckSpelling on
RewriteCond %{DOCUMENT_ROOT}/directory/ -f [NC]
RewriteRule ^(.+\.png)$ process.php?file= [QSA,NC]
RewriteRule ^(.+\.png)$ http://other.website.com/
拼写模块在httpd.conf中启用,.htaccess文件可以修改所有可能的设置,但它仍然和以前一样工作,如果输入不同大小写文件名的文件则不会重定向。
尝试在 Apache 配置中使用 tolower
映射。首先,create a map 用于 httpd.conf
中的 tolower
调用(或 apache2.conf
或 VHost 配置):
RewriteMap lc int:tolower
接下来,在您的条件检查中,将 </code> 转换为小写:</p>
<pre><code>RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/directory/${lc:} -f [NC]
RewriteRule ^(.+\.png)$ process.php?file= [QSA,NC]
RewriteRule ^(.+\.png)$ http://other.website.com/
请注意,要使上述方法正常工作,您的文件应始终使用小写字母。