Доброго времени суток! Кто-нибудь из форумчан может помочь с правилом для .htaccess? Мне нужно при запросе site.ru/catalog/?arrFilter_18_MIN=&arrFilter_18_MAX=&arrFilter_711_3163876399=Y&arrFilter_38_MIN=&arrFilter_38_MAX=&arrFilter_40_MIN=&arrFilter_40_MAX=&set_filter=Показать открывалась страница фильтра, но в урл был ЧПУ - site.ru/catalog/sale_flats/energostroitel Я сделал так Код (Text): RewriteRule ^catalog/sale_flats/energostroitel$ /catalog/sale_flats/?arrFilter_18_MIN=&arrFilter_18_MAX=&arrFilter_711_3163876399=Y&arrFilter_38_MIN=&arrFilter_38_MAX=&arrFilter_40_MIN=&arrFilter_40_MAX=&set_filter=Показать&%{QUERY_STRING} [L,R=301,NC] это перенаправление, рабочее, но URI меняется. Как же составить правило, чтобы URI не менялся, а оставался /catalog/sale_flats/energostroitel и ещё чтобы при обратном запросе также показывался короткий URI Уже голову сломал, помогите, уважаемые форумчане!! Мой .htaccess Код (Text): Options -Indexes ErrorDocument 404 /404.php <IfModule mod_php5.c> #php_flag allow_call_time_pass_reference 1 #php_flag session.use_trans_sid off php_flag register_globals off php_value display_errors 1 php_value mbstring.func_overload 2 php_value mbstring.internal_encoding UTF-8 </IfModule> <IfModule mod_rewrite.c> Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteRule ^flat(\/.*)?$ /catalog/sale_flats$1/ [L,R=301,NC] RewriteRule ^catalog/sale_flats/energostroitel$ /catalog/sale_flats/?arrFilter_18_MIN=&arrFilter_18_MAX=&arrFilter_711_3163876399=Y&arrFilter_38_MIN=&arrFilter_38_MAX=&arrFilter_40_MIN=&arrFilter_40_MAX=&set_filter=Показать&%{QUERY_STRING} [R,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] </IfModule> <IfModule mod_dir.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/jpeg "access plus 3 day" ExpiresByType image/gif "access plus 3 day" ExpiresByType image/png "access plus 3 day" ExpiresByType text/css "access plus 3 day" ExpiresByType application/javascript "access plus 3 day" </IfModule> AddDefaultCharset utf-8 AddType 'text/html; charset=utf-8' .html .htm .shtml
Рерайтер работает при разрешении запроса. Он не фильтрует и не переписывает урлы в выходном потоке. Вывод: переписывать надо свой код, чтоб он выводил урлы в нужном чпу-формате.
Ладно, понял, спасибо, на вывод из фильтра URL в таком формате забью, ибо на это уйдёт слишком много времени вся логика фильтра на данный момент работает именно на GET параметрах из URI. Подскажите тогда как оставить URL от ЧПУ в адресной строке, а подгрузить редирект. Я видел правила и некоторые пробовал, они работают, но я не могу подобрать под свой конкретный случай. Имхо, нужно менять последний параметр RewriteRule - L/P/NC, но что именно писать я не знаю. Подскажите, пожалуйста.
Подробнее опиши что ты хочешь. Что такое "оставить урл от чпу". Урл он один. Тот, который ты изначально сгенерировал, отдал, и по которому пользователь сделал запрос. Вот на моменте этого запроса включается рерайтер.
Застрял на таком моменте Код (Text): RewriteRule ^(.*)/(.*)/roshino$ /catalog/sale_flats/?arrFilter_18_MIN=&arrFilter_18_MAX=&arrFilter_711_2854278298=Y&arrFilter_38_MIN=&arrFilter_38_MAX=&arrFilter_40_MIN=&arrFilter_40_MAX=&set_filter=%D0%9F%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C [L] Если пишу [P] - идёт редирект куда надо, но URI меняется Если пишу [L] - URI нужный,остаётся в адресной строке, но редиректит, не туда куда нужно. Если знакомы с Битриксом то в catalog.section.list или в catalog/index.php, не могу понять, как заставить это работать. Второй день бьюсь.