Проблема с .htaccess

A4
На сайте с 05.01.2012
Offline
55
756

Здравствуйте. Я столкнулся с проблемой - конфликтуют инструкции в .htaccess

Попытки самостоятельно решить вопрос пока ни к чему хорошему не привели. В общем конфликтует такая инструкция:

(это перенаправление любого урла в index.php, чтобы там его обработать через php. Очень нужная мне инструкция, без нее никак не сделать сайт понятным для поисковиков)

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

Конфликтует с этим:

RewriteRule ^audio/(.+\.mp3)$ /urlencode.php?file=$1 [L]

- тоже Очень нужная инструкция - без нее музыка не проигрывается)

Если обе инструкции включены - музыка не играет(собственно конфликт) или выдет 500ю ошибку(тоже конфликт) или редиректит на индекс.php с любого урл...

Из-за этого приходится отказываться от первого куска кода, но это мне все карты мешает. Как сделать так, чтобы небыло конфликта. Как помирить эти инструкции?)

minor
На сайте с 04.10.2010
Offline
70
#1

Вроде все верно, попробуйте поменять местами если у вас не так


RewriteRule ^audio/(.+\.mp3)$ /urlencode.php?file=$1 [L]
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
PHP experience 2 year, comprehend seo
A4
На сайте с 05.01.2012
Offline
55
#2

нет не выходит к сожалению

siv1987
На сайте с 02.04.2009
Offline
427
#3

audio в вашем примере поднимите перед блоком правил "перенаправление любого урла в index.php". И никаких конфликтов не должно быть. Так же уберите начальный слеш перед urlencode.php

A4
На сайте с 05.01.2012
Offline
55
#4

АА все все все)) Понял спасибо большое)) В общем если интересно написал так:


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^audio/(.+\.mp3)$ urlencode.php?file=$1 [L]
RewriteCond $1 !^(index\.php|images|robots\.txt|public)
RewriteCond %{REQUEST_URI} !\.(/|\.css|\.js|\.jpg|\.gif|\.png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

Всем огромное спасибо!!

siv1987
На сайте с 02.04.2009
Offline
427
#5
aftamat4ik:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Это совсем не обязательно перед ^audio, разве только у вас нет реальной такой папки с мп3 файлами. Достаточно было просто переместить правило вверх.

M
На сайте с 16.09.2012
Offline
0
#6

Здравствуйте!

У нас несколько месяцев назад на сайте перестал срабатывать файл .htaccess

RewriteEngine On

RewriteBase /metric/

RewriteCond %{REQUEST_URI} [^/]+\.gif$

RewriteCond %{DOCUMENT_ROOT}/metric/cache%{REQUEST_URI} -f

RewriteRule ^(.+)$ cache/$1 [L]

RewriteRule ^([^/]+)\.gif$ out_metric.php?mi=$1 [L]

не производится редирект на /metric/cache

с чем это может быть связано?

siv1987
На сайте с 02.04.2009
Offline
427
#7

А до этого он срабатывал?

M
На сайте с 16.09.2012
Offline
0
#8

Да, до этого года 3 или 4 работал

siv1987
На сайте с 02.04.2009
Offline
427
#9

Ну тогда откатите все изменения которые делали, или обратитесь к хостеру по поводу работы мод_реврайта.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий