使用.htaccess使网站不区分大小写

时间:2015-12-05 10:54:08

标签: php .htaccess

这就是我的.htaccess目前所拥有的

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Options -Indexes

就像现在一样,website.com/jobs有效,而website.com/Jobs却没有。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
CheckSpelling On
CheckCaseOnly On
Options -Indexes

我继续前进,让我的.htaccess包含以下内容,我的网站现在提供500内部错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  

技术支持人员告诉我,mod_speling未启用。主要问题是/ Jobs到/ jobs。无论如何没有mod_speling吗?

你可以这样做:

Options -Indexes
RewriteEngine on

# handle Jobs => jobs
RewriteRule ^Jobs/?$ /jobs [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

答案 1 :(得分:0)

我认为你需要在rewriteRule中使用不区分大小写的检查

  

使用[NC]标志会使RewriteRule在a中匹配   不区分大小写的方式。也就是说,它不关心字母   在匹配的URI中显示为大写或小写。

所以也许

RewriteRule ^[Ww](.*)$ $1.php   [NC] 

将起作用