LINUX.ORG.RU

htaccess под многоязычный сайт


0

0

Есть задумка, не знаю как реализовать. 3 языка на сайте. Русский-по умолчанию. Нужно привести ссылки к следующему виду http://site.com/razdel?lang=ua к http://site.com/razdel-ua

http://site.com/razdel/razdel.html?lang=en к http://site.com/razdel/razdel-en.html

http://site.com/razdel2?lang=ru просто к http://site.com/razdel2

При этом остальные передаваемые в адресной строке параметры не должны никак меняться.

http://site.com/razdel2?search1=1&search2=1

.htaccess который уже есть и который нужно, чтобы и дальше работал.

DirectoryIndex index.php AddDefaultCharset windows-1251 ErrorDocument 404 /netcat/require/e404.php

Options -Indexes Options FollowSymLinks

<IfModule mod_php4.c> php_flag register_globals on php_flag magic_quotes_gpc on php_flag error_reporting off php_value arg_separator.output «&» </IfModule>

<ifModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA] </ifModule>


Если я правильно понял задачу:

<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^(.*)lang=(en|ru)(.*)$
RewriteRule ^razdel$ razdel-%2?%1%3 [R,L]

RewriteCond %{QUERY_STRING} ^(.*)lang=(en|ru)(.*)$
RewriteRule ^razdel/(.*)\.html$ razdel/$1-%2?%1%3 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA] 

PS - а за

php_flag register_globals on
php_flag magic_quotes_gpc on

руки отрывать надо.

sjinks ★★★ ()
Ответ на: комментарий от sjinks

Для всех трёх языков:

RewriteCond %{QUERY_STRING} ^(.*)lang=(en|ru|ua)(.*)$

sjinks ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.