Правило переписать, чтобы перенаправить HTML, но не любые другие файлы - PullRequest
0 голосов
/ 03 сентября 2010

Я хочу, чтобы мой htaccess перенаправлял URL-адрес, заканчивающийся на «.html», на index.php, но не на любые другие файлы (чтобы изображения могли сохранять свой href и по-прежнему отображаться)

Вот как мойhtaccess выглядит как сейчас, он работает для перенаправления HTML, но стили или изображения не отображаются (потому что они также перенаправлены, я думаю)

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^/?([\w./]+)\.html$ /index.php?object=$1 [L]
RewriteRule ^/?([^html]+)$ /$1

Как мне заставить его работать, так что только .html-файлы перенаправляются?

Ответы [ 2 ]

1 голос
/ 03 сентября 2010
RewriteRule ^/?([^html]+)$ /$1

Не делает то, что вы хотите. Он соответствует чему-либо, не содержащему ни одного из символов h, t, m или l. Ваше первое правило также странно; наличие \w и . избыточно, поскольку . подразумевает \w в дополнение к другим символам.

Попробуйте это правило:

RewriteRule ^/?(.*)\.html$ /index.php?object=$1
1 голос
/ 03 сентября 2010
RedirectMatch 301 (.*)\.html$ http://www.example.com$1.php

Использовал это раньше, работал отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...