|
|
|
| Всем Здравствуйте.
есть урл Например: _http://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
Написал правила для первых 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-го случая:
RewriteRule ^(.*)\.html$ /index.php?id=$1 [L,NS]
|
По отдельности правила работают. При совмещении получаю ошибку в браузере: Неверное перенаправление на странице.
Если закомментировать правило: то все ок
# добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце
RewriteCond %{REQUEST_URI} !(\.html)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1.html [NS,L,R=301]
# конец добавляем .html в конце если ссылка закончилась просто текстом без слеша на конце
|
Что где подправить и может есть более лучшее решение? | |
|
|
|
|
|
|
|
для: dandandan
(02.12.2011 в 23:07)
| | Озадачили вы однако! Но тем не менее получилось :)
RewriteRule ^(.*)\.html$ test.php?id=$1 [L]
RewriteRule ^(.*)(/|\.htm)$ $1.html [L]
RewriteCond %{REQUEST_URI} !(\.html|\.php)$ [NC]
RewriteRule ^(.*)$ $1.html [L]
|
| |
|
|
|