Я пытался сделать
RewriteEngine On RewriteMap lc int:tolower RewriteCond %{REQUEST_URI} [AZ] 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
Если вы используете PHP, вы можете поместить это в начало вашего index.php
$url = $_SERVER['REQUEST_URI']; $pattern = '/([AZ]+)/'; if(preg_match($pattern, $url)) { $new_url = strtolower($url); Header( 'HTTP/1.1 301 Moved Permanently' ); Header( 'Location: ' . $new_url ); exit; } // your code here
RewriteMap
НЕ МОЖЕТ быть объявлен в файле .htaccess – только в конфигурации сервера / виртуального хостинга: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritemap
Если вы не можете редактировать файлы конфигурации Apache, вам не повезло – вы должны реализовать такую перенаправление, используя, например, некоторый скрипт – PHP.