How would I make Apache case insensitive using .htaccess?

后端 未结 2 451
野性不改
野性不改 2021-01-04 01:58

I recently switched from IIS to Apache and unfortionately some of my links have capitalization issues. I have seen quite a few people talking about how to rewrite urls to be

相关标签:
2条回答
  • 2021-01-04 02:28

    add

    CheckSpelling on
    

    to your .htaccess file of course after enabling the RewriteEngine

    so the final code will be

    RewriteEngine on
    CheckSpelling on
    

    I guess it is the best and safest way.

    dont forget to change

    AllowOverride none
    

    to

    AllowOverride All
    

    inside your httpd.conf file, to allow .htaccess files to work correctly.

    0 讨论(0)
  • 2021-01-04 02:45

    If CheckSpelling isn't working for you and you're using PHP, you can add a PHP redirect in your 404 page to redirect to the lowercase version of the URL. To start, if you haven't already done so, add the following code to your .htaccess file (you can call the file something else than 404.php if you want, but it has to be a PHP file):

    ErrorDocument 404 /404.php
    

    Then add the following code at the beginning of 404.php (if you're using HTTPS, change http:// to https:// at the second line):

    if(preg_match("/[A-Z]/", $_SERVER["REQUEST_URI"])){
        header("location:http://" . $_SERVER["HTTP_HOST"] . strtolower($_SERVER["REQUEST_URI"]));
        exit();
    }
    

    This code uses a simple regex to check if the requested URI contains uppercase letters, and if it does, it redirects to the same page but with lowercase letters.

    0 讨论(0)
提交回复
热议问题