我在虚拟主机中使用RewriteMap强制所有网址都是小写的。
但是,我想将某些目录和内容排除在强制为小写之外。这可能吗?这是我目前的htaccess,所以我想知道是否有人可以告诉我我需要添加哪些规则/条件来排除/ static /和/ media /目录被强制为小写。
<IfModule mod_rewrite.c>
RewriteEngine On
# Don't redirect these
#RewriteRule \.(gif|jpe?g|png|css|js)$ - [NC,L]
# Always remove any trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Removes index.php
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
谢谢。
答案 0 :(得分:0)
这是非常可能的。您的上述.htaccess代码未显示将URI转换为小写的任何代码。如果这些规则在httpd.conf
中,则最好将这些规则移动到.htaccess,以便您可以从一个地方控制/管理所有重写规则。一旦这些规则在.htaccess中,您可以使用这样的规则来避免降低某些URI的小写:
# if URI doesn't contains INDEX. then convert to lowercase
RewriteCond %{REQUEST_URI} !/INDEX\.
RewriteRule ^(.*?[A-Z]+.*)$ ${lc:$1} [R,L]