强制小写.htaccess

时间:2011-07-18 17:39:21

标签: php html apache .htaccess

我试着做

RewriteEngine On
RewriteMap  lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]

但是,我收到500内部错误。不确定是什么问题。

错误:

/home/public_html/.htaccess: RewriteMap not allowed here
[Mon Jul 18 10:33:06 2011] [alert] [client *.*.*.*] /home/public_html/.htaccess: RewriteMap not allowed here

2 个答案:

答案 0 :(得分:3)

RewriteMap无法在.htaccess文件中声明 - 仅在服务器配置/虚拟主机环境中声明:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritemap

如果您无法编辑Apache的配置文件,那么您运气不好 - 您必须使用某些脚本实现此类重定向 - 例如PHP。

答案 1 :(得分:3)

如果你使用PHP,你可以将它放在index.php的开头

$url = $_SERVER['REQUEST_URI'];
$pattern = '/([A-Z]+)/';

if(preg_match($pattern, $url)) {
    $new_url = strtolower($url);

    Header( 'HTTP/1.1 301 Moved Permanently' );
    Header( 'Location: ' . $new_url );
    exit;
}

// your code here