我试着做
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
答案 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