.htaccess добавить расширение файла, удалить последний слэш, дописать букву L в .htm

dandandan83

Новичок
Всем Здравствуйте.
есть урл Например: localhost/hotel/mogu/prikrutit-golosov-anie.html

Надо:
1. если урл вида /hotel/mogu/prikrutit-golosov-anie
добавить в конце .html

2. если урл вида /hotel/mogu/prikrutit-golosov-anie/
убрать последний слеш и добавить в конце .html

3. если урл вида /hotel/mogu/prikrutit-golosov-anie.htm
добавить в конце .l , чтобы получилось .html

4. Из полученного урла в переменную записать hotel/mogu/prikrutit-golosov-anie

PHP:
Написал правила для первых 3 случаев:
# добавляем L в .html в конце если закончилось .htm
RewriteCond %{REQUEST_URI} (.htm)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1l [NS,L,R=301]
# конец добавляем L в .html в конце если закончилось .htm

# добавляем .html в конце если ссылка закончилась просто текстом со слешем на конце
#удалил слеш на конце
RewriteRule ^(.*)\/$ /$1 [NS,L,R=301] 
# конец добавляем .html в конце если ссылка закончилась просто текстом со слешем на конце

# добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце
RewriteCond %{REQUEST_URI} !(\.html)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1.html [NS,L,R=301]
# конец добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце


Написал правило 4-го случая:
PHP:
RewriteRule ^(.*)\.html$ /index.php?id=$1 [L,NS]


По отдельности правила работают. При совмещении получаю ошибку в браузере: Неверное перенаправление на странице.

Если закомментировать правило: то все ок
PHP:
# добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце
RewriteCond %{REQUEST_URI} !(\.html)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1.html [NS,L,R=301]
# конец добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце

Что где подправить и может есть более лучшее решение?
 

dandandan83

Новичок
Изменил [NS,L,R=301] на [NС,L,R=301] в правиле
PHP:
# добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце
RewriteCond %{REQUEST_URI} !(\.html)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1.html [NC,L,R=301]
# конец добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце
Вообще все правила перестали работать. Ошибка та же выдается:
Неверное перенаправление на странице
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
Все запросы переводятся на скрипт index.php . Внутри скрипта стоит код:
PHP:
if (isset($_GET['id'])){
   echo $_GET['id'];
}
else{
   echo 'Главная.';
}
 
Сверху