繁体   English   中英

htaccess URL 将 301 重定向为小写,但有例外

[英]htaccess URL's redirect 301 to lowercase with exceptions

我想在我的 Apache 配置文件中使用RewriteMap lc int:tolower将我所有的 URL 更改为小写,而在 my.htaccess 中有这个正则表达式:

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]

.. 完美地工作:但我有库(带文件)和我不想更改为小写的目录(例如:“图像”与所有子目录或库。“Functions/Liberties/Image/Resize.php “)。。? 怎么做? 我尝试使用RewriteRule ^(Images) - [NC,QSA,L]但不接受它...知道如何设置此例外吗?

提前谢谢你,对不起我的英语!

您可以先使用-indexes禁用目录列表,现在,如果请求的 URI 是现有目录或文件,您可以使用!-d!-f参数跳过重写规则,如下所示:

Options -Indexes

RewriteEngine On
RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]

谢谢大家...我用这个解决它:

RewriteRule ^Admin/ - [L]
RewriteRule ^Apps/ - [L]
RewriteRule ^Bank/ - [L]
RewriteRule ^Downloads/ - [L]
RewriteRule ^Functions/ - [L]
RewriteRule ^Images/ - [L]
RewriteRule ^Pages/ - [L]
RewriteRule ^Scripts/ - [L]
RewriteRule ^Styles/ - [L]

......我把它放在前面:

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]

对于我和我的个案工作,我希望这是一个正确的决定。 再次感谢你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM