强制小写URL,但排除某些目录

时间:2013-04-03 10:57:10

标签: .htaccess

我在虚拟主机中使用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>

谢谢。

1 个答案:

答案 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]