Тема: Утонул в .htaccess

Помогите советом, я уже совсем завяз sad На динамическом сайте имею ссылки формата site.ru/index.php?act=1 и хочу преобразовать их в site.ru/***.html

Изначально в index.php такая конструкция:

    if (isset($_GET['act']))
    {$file='error404.php';
    if ($_GET['act']==1)
    {$file = 'template/str1.html';}
    elseif ($_GET['act']==forma.'.html')
    {$file = 'template/str2.html';}
    elseif ($_GET['act']==options.'.html')
    {$file = 'template/str3.html';}

Настраиваю .htaccess

RewriteEngine On
RewriteBase /

# Убрать из дир. завершающий слэш 
RewriteRule ^(.*)(/)$ $1 [L,R=301]

# Имена и последовательность индексных файлов
DirectoryIndex index.php?act=1 

# Определяю главное зеркало
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]   

# Запрет прямого захода в дир. template
RewriteRule ^template(.*)$ /error404.php [L,R=301]

# Редиректы с /index.php на /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]

# Редирект с первой страницы на хост
RewriteRule ^act=1(.*)$ / [L,R=301]
RewriteRule ^1(.*)$ / [L,R=301]

# ЧПУ
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?act=$1 [L,QSA]

Ссылки вида site.ru/file.html теперь работают, но режутся
- и _ если линк вида /6-ab-cd.html или /ab_cd_ef.html никак не получается исправить sad

Ну и может в коде напутал, посмотрите опытным глазом если не трудно, для меня все это еще сумерки. Спасибо.

Re: Утонул в .htaccess

roman пишет:

Ну и может в коде напутал

Напутал? Да ты вообще какой-то ад написал.
ЧПУ не только в htaccess заключается, но и в файлах php надо прописывать правила формирования url'ов - если ты не знаешь что и как там сделать - оставь затею, а то сделаешь только хуже.

Re: Утонул в .htaccess

Грубо файл index.php такой:
<?php
include('шапка.php');
include('меню.php');
if (isset($_GET['act']))
    {$file='error404.php';
if ($_GET['act']==1)
    {$file = 'template/str1.html';}

elseif ($_GET['act']==forma.'.html')
    {$file = 'template/str2.html';}
elseif ($_GET['act']==options.'.html')
    {$file = 'template/str3.html';}
else
    {$file = 'error404.php';}
    include($file);}
include("футер.php");
?>

Инклюдятся шапка и меню подгружаются контент и футер.
Линки соотвецтвенно:
http://домен/index.php?act=1 (главная)
http://домен/index.php?act=forma.html (контент из template/str2.html)
http://домен/index.php?act=options.html (контент из template/str3.html)

Да, вид ссылки http://домен/index.php?act=forma.html мне не понравился, изменил его на http://домен/forma.html о чем выше и написал.
Что тут такого адового в формировании url'ов, и к чему столько патетики, не понимаю, обьясни.

Re: Утонул в .htaccess

roman, Ничего не понятно. Но скажи лучше, по нужным тебе якобыЧПУ урлам открываются нужные страницы?
Т.е. при вводе в браузере http://домен/forma.html открывается та самая нужная страница?

Re: Утонул в .htaccess

Все нормально открывается конечно, у меня проблема была со ссылками, elseif ($_GET['act']==forma.'.html') все нормально открывалось, но ссылки формата elseif ($_GET['act']==ab-cd_forma.'.html') выкидывало в 404, уже разобрался, нужно было левую часть ссылки в кавычки закрыть. Спасибо за помощь.