0

我在我的虚拟主机中使用 RewriteMap 来强制所有 URL 为小写。

但是,我想排除某些目录和内容被强制小写。这可能吗?这是我当前的 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>

谢谢你。

4

1 回答 1

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]
于 2013-04-03T11:07:03.807 回答