Using Apache htaccess file to change URL to lowercase

前端 未结 3 1786
一向
一向 2021-01-14 08:36

How can I modify my .htaccess file on Apache to do the following:

\"If the URL ends in .aspx, rewrite the entire URL to lowercase.\"

Backstory: I recently mi

3条回答
  •  余生分开走
    2021-01-14 09:11

    Try this code:

    RewriteEngine On
    RewriteBase /
    
    # If there are caps, set HASCAPS to true and skip next rule
    RewriteRule [A-Z].*?\.aspx$ - [E=HASCAPS:TRUE,S=1]
    
    # Skip this entire section if no uppercase letters in requested URL
    RewriteRule !\.aspx$ - [S=29]
    RewriteRule ![A-Z] - [S=28]
    
    # Replace single occurance of CAP with cap, then process next Rule.
    RewriteRule ^([^A]*)A(.*)$ $1a$2
    RewriteRule ^([^B]*)B(.*)$ $1b$2
    RewriteRule ^([^C]*)C(.*)$ $1c$2
    RewriteRule ^([^D]*)D(.*)$ $1d$2
    RewriteRule ^([^E]*)E(.*)$ $1e$2
    RewriteRule ^([^F]*)F(.*)$ $1f$2
    RewriteRule ^([^G]*)G(.*)$ $1g$2
    RewriteRule ^([^H]*)H(.*)$ $1h$2
    RewriteRule ^([^I]*)I(.*)$ $1i$2
    RewriteRule ^([^J]*)J(.*)$ $1j$2
    RewriteRule ^([^K]*)K(.*)$ $1k$2
    RewriteRule ^([^L]*)L(.*)$ $1l$2
    RewriteRule ^([^M]*)M(.*)$ $1m$2
    RewriteRule ^([^N]*)N(.*)$ $1n$2
    RewriteRule ^([^O]*)O(.*)$ $1o$2
    RewriteRule ^([^P]*)P(.*)$ $1p$2
    RewriteRule ^([^Q]*)Q(.*)$ $1q$2
    RewriteRule ^([^R]*)R(.*)$ $1r$2
    RewriteRule ^([^S]*)S(.*)$ $1s$2
    RewriteRule ^([^T]*)T(.*)$ $1t$2
    RewriteRule ^([^U]*)U(.*)$ $1u$2
    RewriteRule ^([^V]*)V(.*)$ $1v$2
    RewriteRule ^([^W]*)W(.*)$ $1w$2
    RewriteRule ^([^X]*)X(.*)$ $1x$2
    RewriteRule ^([^Y]*)Y(.*)$ $1y$2
    RewriteRule ^([^Z]*)Z(.*)$ $1z$2
    
    # If there are any uppercase letters, restart at very first RewriteRule in file.
    RewriteRule [A-Z] - [N]
    
    RewriteCond %{ENV:HASCAPS} TRUE
    RewriteRule ^/?(.*) /$1 [R=301,L]
    

提交回复
热议问题