Как сохранить старый адрес страниц, и выводить их без расширения .htm

Levitt

Профессор
Регистрация
20 Май 2008
Сообщения
361
Реакции
43
Залил дропнутий сайт без чпу. Все бывшие динамические страницы стали естественно статистическими и сохранены в физически в фалах типа index.php-&vmcchk=1&option=com_virtuemart&Itemid=3.htm . Цель же сохранить прошлый адрес и выдать без окончания .htm . Для дропов всегда использовал код ниже, но в этом случае получаю 404 ошибку =(.
Код:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.htm [NC,L]
Можно ли вообще справится если в браузере должно быть *.php с параметрами с названиями, или же нужно переименовать все файлы и от этого плясать?
 
В коде страниц они тоже как .htm сохранены ссылками?
как вариант удалить htm из названия и отдавать все неопознанные как html/txt файлы
 
Код:
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://site.ru/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]

подставив вместо site.ru свой домен
 
К сожалению не помогает. Загвоздка в том, что браузерная строка содержит index.php?parametr=1111.htm при обращении обрабатывается ни как htm файл, а как index.php, а все что далее - параметры.

---
Переименовал все внутряки c index.php?... на index.php-option... . Осталось сделать склейку и перенаправлять запросы 301 с index.php?... на index.php-option... - поможете?
 
Последнее редактирование:
Изначально если ссылки были
index.php?&vmcchk=1&option=com_virtuemart&Itemid=3
а файл с содержимым
index.php-&vmcchk=1&option=com_virtuemart&Itemid=3.htm

то проблема решалась бы таким правилом
Код:
RewriteCond %{DOCUMENT_ROOT}/$1-%{QUERY_STRING}.htm -f
RewriteRule (.*) /$1-%{QUERY_STRING}.htm [L]
 
Назад
Сверху