site.ru/123.html to site.ru/123

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем orenburger, 19 фев 2011.

  1. orenburger

    orenburger Создатель

    Регистр.:
    29 июл 2008
    Сообщения:
    11
    Симпатии:
    0
    Помогите пожалуйста, нужно сделать так, чтобы страницы хранящиеся на сервере в виде site.ru/some_folder/123.html были доступны по URL site.ru/some_folder/123
     
  2. alseman

    alseman

    Регистр.:
    21 май 2008
    Сообщения:
    190
    Симпатии:
    25
    RewriteRule site.ru/some_folder/123(.*) /site.ru/some_folder/123.html$1 [PT]

    Я точно не уверен, но вроде так
     
  3. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    В итоге будет вечный редирект:read:
    Код:
    RewriteEngine on
    RewriteRule ^/?some_folder/([^/\.]+)$ /some_folder/$1\.html [L]
    
     
  4. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    542
    Симпатии:
    323
    А наоборот получается так:
    Код:
    RewriteEngine on
    RewriteRule ^/some_folder/$1\.html  /?some_folder/([^/\.]+)$[L]
    И зачем папку ставить то?

    Я думаю правильнее вот так:
    Код:
    RewriteEngine on
    RewriteRule ^/$1\.html  /([^/\.]+)$[L]
    А вообще вот как мне надо
    site.ru/123 --> site.ru/123.html

    Чтобы любые страницы так редиректирись без html (но главная чтобы не бралась в расчет!)
     
  5. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Читайте, что просил сделать ТС.
    Код:
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !\.html$
    RewriteRule (.+) /$1.html [R=301,L]
    
     
  6. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    542
    Симпатии:
    323
    Не то. Он со всех переводит на html, а нужно только на тех, на которых его не было или скажите как с страницы без html сделать с ней?

    т.е. конкретно site.ru/123 --> site.ru/123.html
     
  7. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Только скрипт именно так и делает, но для других расширений тоже html конкатенируется.
    Ну в таком случае можно кинуть проверку на точку в запросе, но это как-то туповато:
    Код:
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !\.\w+
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule ([^/]+) /$1.html [L]
    
     
  8. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    542
    Симпатии:
    323
    Просто он делает из index.php --> index.php.html
     
  9. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Знаю, по этому и написал в следующем посте
    Последний вариант так не делает, убраны все файлы с расширением, и директории.
     
  10. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    542
    Симпатии:
    323
    Странно, сейчас вообще не работает. Хорошо что не вставляет куда не надо, но и нигде не работает :)

    UPDATE...

    Нашел решение для Joomla: