Не праздный вопрос по mod_rewrite.

R
На сайте с 25.08.2012
Offline
16
473

Здравствуйте уважаемые форумчане.

Столкнулся с проблемой. На моем сайте в названиях статей могут присутствовать точки.

Если в .htaccess такая конструкция, то не отображаются картинки ни в категориях, ни на страницах категорий, ни в самих статьях.

RewriteRule ^dir/([a-zA-Z-]+)$ dir/?category=$1 [L]

RewriteRule ^dir/([a-zA-Z-]+)/page/([0-9]+)$ dir/?category=$1&page=$2 [L]

RewriteRule ^dir/([a-zA-Z-]+)/([\.a-zA-Z0-9-]+)$ dir/?category=$1&article=$2 [L]

Но если убрать точку в этой строке

RewriteRule ^dir/([a-zA-Z-]+)/([\.a-zA-Z0-9-]+)$ dir/?category=$1&article=$2 [L]

то картинки отображаются, НО при этом я не могу попасть в статью, в имени которой содержатся точки.

Картинки лежат в /dir/images/imagename(могут присутствовать точки в названии)

Помогите, пожалуйста!

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Перед правилами пропишите условия(REWRITE_COND) - если директория НЕ images

НУ или если это не файл - кажись более правильно. Во многих CMS-ках так и сделано.

RewriteCond %{REQUEST_FILENAME} !-f

Точнее не перед правилами, а перед 3-им правилом, которое у Вас вызывает траблы.

Подпись))
R
На сайте с 25.08.2012
Offline
16
#2

Я пробовал:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

Не помогает 😡

---------- Добавлено 07.11.2012 в 00:42 ----------

Милованов Ю.С, сработало. Оказывается это надо прописывать перед каждым правилом.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

да точно, это мой затуп про "только на 3 реврайтруль". Я рад, что помогло:)

R
На сайте с 25.08.2012
Offline
16
#4

Нет, Вы правы, можно прописать и только перед

RewriteRule ^dir/([a-zA-Z-]+)/([\.a-zA-Z0-9-]+)$ dir/?category=$1&article=$2 [L]

Еще раз спасибо.

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