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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Levitt, 22 сен 2014.

  1. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    358
    Симпатии:
    36
    Залил дропнутий сайт без чпу. Все бывшие динамические страницы стали естественно статистическими и сохранены в физически в фалах типа index.php-&vmcchk=1&option=com_virtuemart&Itemid=3.htm . Цель же сохранить прошлый адрес и выдать без окончания .htm . Для дропов всегда использовал код ниже, но в этом случае получаю 404 ошибку =(.
    Код:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.htm [NC,L]
    Можно ли вообще справится если в браузере должно быть *.php с параметрами с названиями, или же нужно переименовать все файлы и от этого плясать?
     
  2. RORC

    RORC

    Регистр.:
    14 июн 2013
    Сообщения:
    173
    Симпатии:
    41
    В коде страниц они тоже как .htm сохранены ссылками?
    как вариант удалить htm из названия и отдавать все неопознанные как html/txt файлы
     
  3. efs

    efs SEO оптимизатор дискрипторов одностраничных сайтов

    Moderator
    Регистр.:
    20 ноя 2009
    Сообщения:
    832
    Симпатии:
    488
    Код:
    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 свой домен
     
  4. Levitt

    Levitt

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

    ---
    Переименовал все внутряки c index.php?... на index.php-option... . Осталось сделать склейку и перенаправлять запросы 301 с index.php?... на index.php-option... - поможете?
     
    Последнее редактирование: 24 сен 2014
  5. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    205
    Симпатии:
    259
    Изначально если ссылки были
    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]