Помогите пожалуйста с .htaccess

deepslam

Новичок
Помогите пожалуйста с .htaccess

Всем привет!

У меня проблемка с настройкой .htaccess , я хочу сделать "русские урлы" , типа :

Для этого все URL своего сайта кодирую функцией rawurlencode , получая строку типа:

Но при заходе по данному адресу получаю ошибку 403 , Forbidden

Все остальные УРЛЫ типа site.ru/admin и т.п. , т.е. английские работают , как и работали.

Тестирую на денвере , в error.log получаю:

[Sun Nov 30 23:12:12 2008] [error] [client 127.0.0.1] (22)Invalid argument: Cannot map GET /%ED%EE%E2%FB%E9_%F1%F3%EF%E5%F0_%EF%F3%EF%E5%F0_%F0%E0%E7%E4%E5%EB/ HTTP/1.1 to file, referer: http://site.ru/admin/?module=catalog

Пробовал делать так:

В .htaccess:

Получаю :

[Sun Nov 30 23:06:47 2008] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Помогите пожалуйста , всю голову уже сломал.

Спасибо :)
 

clevel

Новичок
Может есть смысл все запросы к несуществующим файлам реврайтить на Index.php, а в нем уже делать urldecode, и вытаскивать из конфига/базы сопоставление - о компании = about/index.html
Ну и потом file_get_contents/include
 

MiksIr

miksir@home:~$
Request exceeded the limit of 10 internal redirects due to probable configuration error.
Это переводится как - напортачил в реврайт правилах, чини их.
 

deepslam

Новичок
Всем спасибо за ответы , wordpress сегодня посмотрю.

MiksIr , у меня в .htaccess одна строка всего , которую я и скинул , что в ней неверное?
 

MiksIr

miksir@home:~$
Если у Вас в htaccess написано только
^(.*)$
и ничего больше вы не получаете 500-ю ошибку, значит ваш htaccess не работает.
 

deepslam

Новичок
Спасибо за ссылку , сейчас почитаю.

Вот полное содержимое .htaccess:

php_flag zlib.output_compression on
php_value zlib.output_compression_level 5

DirectoryIndex index.php
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([\%0-9a-zA-Z_/-]+)/{0,10}$ /index.php?id_rubric=$1&$3%{QUERY_STRING} [L]
</IfModule>
-~{}~ 01.12.08 14:13:

Также пробовал так:

php_flag zlib.output_compression on
php_value zlib.output_compression_level 5

DirectoryIndex index.php
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(*.)$ /index.php?id_rubric=$1&$3%{QUERY_STRING} [L]
</IfModule>
 

MiksIr

miksir@home:~$
Поставьте условие что URI не равен index.php - именно по-этому у вас все уходит в цикл
 

deepslam

Новичок
Ок, попробую , спасибо большое

-~{}~ 01.12.08 21:56:

Туплю , а как поставить условие? В rewriteCond ведь есть только проверка доменного имени? (HTTP_HOST)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
В rewriteCond ведь есть только проверка доменного имени? (HTTP_HOST)
Кто тебе такую глупость сказал?
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html#rewritecond
Стотрим доступные серверные переменные

-~{}~ 01.12.08 21:41:

Поставь правила из faq и не мучься.
 

MiksIr

miksir@home:~$
вообще правильнее всего сделать что-то типа
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
 

deepslam

Новичок
И снова я )))

Получился след. хтакцесс:

php_flag zlib.output_compression on
php_value zlib.output_compression_level 5

DirectoryIndex index.php
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id_rubric=$1 [L,QSA]
</IfModule>
При заходе на любой УРЛ , не содержащий % и 2 любых англ. символа , например %FA , %FF и т.п. все работает.

Если же урл "кодированный" , то :

[Tue Dec 02 00:22:46 2008] [error] [client 127.0.0.1] (22)Invalid argument: Cannot map GET /%F0%E0%E7%E4%E5%EB_%EF%F0%EE_%E1%E0%F0%E0%F8%EA%EE%E2/ HTTP/1.1 to file, referer: http://site.ru/admin/?module=catalog
[Tue Dec 02 00:23:08 2008] [error] [client 127.0.0.1] (22)Invalid argument: Cannot map GET /%FA HTTP/1.1 to file
Борюсь дальше ;-(

-~{}~ 02.12.08 01:15:

Блин, все FAQи уже прсомотрел ,может дело в Денвере? Хотя как в нем может быть дело , ведь Apache то один везде

-~{}~ 02.12.08 01:17:

Вот http://forum.vingrad.ru/forum/topic-197116.html такая же проблема у человека

-~{}~ 02.12.08 10:21:

В общем на сервере вся эта штука работает отлично , не работает только локально на Денвере (((
 
Сверху