Вход на сайт
Задачка
NEW 12.08.10 21:52
в ответ femidav 12.08.10 21:42
RewriteRule .* $0? [CO=lang:%1:%{HTTP_HOST},R,L]
Я не понимаю тогда. Url запроса "127.0.0.1/index.xhtml?lang=de" преобразуется к "127.0.0.1/index.xhtml?lang=de?" ? Или оно до параметра только берётся?
Я не понимаю тогда. Url запроса "127.0.0.1/index.xhtml?lang=de" преобразуется к "127.0.0.1/index.xhtml?lang=de?" ? Или оно до параметра только берётся?
Dropbox - средство синхронизации и бэкапа файлов.
NEW 12.08.10 22:02
Вопросительный знак поставлен чтобы отсечь параметры. Установить куки, отсечь параметры для красоты, и перенаправить на тот же адрес, чтобы там уже второе правило перенаправило запрос в нужную подпапку. Можно и без этого, но тогда локаль в адресе будет болтаться. То бишь имеем:
127.0.0.1/index.xhtml?lang=de -> 127.0.0.1/index.xhtml? code 302, -> перезапрос 127.0.0.1/index.xhtml -> 127.0.0.1/de/index.xhtml
Пропиши следующее в httpd.conf, виднее будет:
<IfModule rewrite_module>
RewriteLog /path/to/logs/rewrite.log
RewriteLogLevel 2
</IfModule>
в ответ voxel3d 12.08.10 21:52
В ответ на:
RewriteRule .* $0? [CO=lang:%1:%{HTTP_HOST},R,L]
Я не понимаю тогда. Url запроса "127.0.0.1/index.xhtml?lang=de" преобразуется к "127.0.0.1/index.xhtml?lang=de?" ?
RewriteRule .* $0? [CO=lang:%1:%{HTTP_HOST},R,L]
Я не понимаю тогда. Url запроса "127.0.0.1/index.xhtml?lang=de" преобразуется к "127.0.0.1/index.xhtml?lang=de?" ?
Вопросительный знак поставлен чтобы отсечь параметры. Установить куки, отсечь параметры для красоты, и перенаправить на тот же адрес, чтобы там уже второе правило перенаправило запрос в нужную подпапку. Можно и без этого, но тогда локаль в адресе будет болтаться. То бишь имеем:
127.0.0.1/index.xhtml?lang=de -> 127.0.0.1/index.xhtml? code 302, -> перезапрос 127.0.0.1/index.xhtml -> 127.0.0.1/de/index.xhtml
Пропиши следующее в httpd.conf, виднее будет:
<IfModule rewrite_module>
RewriteLog /path/to/logs/rewrite.log
RewriteLogLevel 2
</IfModule>
NEW 13.08.10 12:53
Нашёл косяк, только не понимаю, чей. Хромиуму при первом заходе, если нет установленной куки, сервер выдёт 500, превышена глубина рекурсии. Оно рекурсивно пытается редиректить начиная с / -> /en/ -> /en/en/ -> ... Возникает только в хроимуме 5.0.375.99 (51029) Ubuntu 10.04. Хром в виндовсе нормально отрабатывает.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 13.08.10 14:22
1. Да.
2. Блин, чудеса. Перестало циклиться. Кэш, куки и т.д., ессно, чистил и тогда и сейчас. Сервер рестартил и тогда и щас.
Вот кусок лога:
Хедер уже показать не могу.
2. Блин, чудеса. Перестало циклиться. Кэш, куки и т.д., ессно, чистил и тогда и сейчас. Сервер рестартил и тогда и щас.

В ответ на:
[Fri Aug 13 12:54:44 2010] [error] [client 192.168.0.11] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalR
ecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Fri Aug 13 12:54:44 2010] [debug] core.c(3063): [client 192.168.0.11] r->uri = /en/en/en/en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /index.xhtml
[Fri Aug 13 12:54:44 2010] [error] [client 192.168.0.11] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalR
ecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Fri Aug 13 12:54:44 2010] [debug] core.c(3063): [client 192.168.0.11] r->uri = /en/en/en/en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /en/index.xhtml
[Fri Aug 13 12:54:44 2010] [debug] core.c(3069): [client 192.168.0.11] redirected from r->uri = /index.xhtml
Хедер уже показать не могу.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 24.08.10 01:56
в ответ femidav 13.08.10 18:39
Подскажи, как мне заставить работать четыре строки идущие после RewriteBase?
Они меняют mime-тип для ИЕ, чтобы он мог открыть .xhtml файлы. Без каталогов, когда всё в корне лежало, оно работало, сейчас - нет.
Они меняют mime-тип для ИЕ, чтобы он мог открыть .xhtml файлы. Без каталогов, когда всё в корне лежало, оно работало, сейчас - нет.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} \.xhtml$
RewriteCond %{HTTP_USER_AGENT} MSIE [OR]
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml\s*;\s*q=0\.?0*(\s|,|$)
RewriteRule .* - [T=text/html]
RewriteCond %{QUERY_STRING} lang=(en|fr|de)
RewriteRule .* $0? [CO=lang:%1:%{HTTP_HOST},R,L]
RewriteCond %{HTTP_COOKIE} lang=(de|fr|en)
RewriteRule .* %1/$0 [L]
RewriteCond %{HTTP:Accept-Language} ^(en|fr|de).*$
RewriteRule .* %1/$0 [L]
RewriteRule .* fr/$0 [L]
ExpiresActive On
ExpiresDefault "access plus 0 seconds"
Dropbox - средство синхронизации и бэкапа файлов.
NEW 24.08.10 11:09
в ответ femidav 24.08.10 02:07
Ты имеешь в виду выставить принудительно для .xhtml глобально mime-тип text/html или использовать мой xhtml код внутри .html файлов?
Я х.з. - я так и не нашёл нигде информации, в какой режим браузеры заходят в подобных случаях, то ли в нормальном остаются, то ли в режим совместимости.
Я х.з. - я так и не нашёл нигде информации, в какой режим браузеры заходят в подобных случаях, то ли в нормальном остаются, то ли в режим совместимости.
Dropbox - средство синхронизации и бэкапа файлов.