ну попробуйте для начала с общей конструкции:
RewriteBase /
RewriteRule ^(.*)/(.*)\.html$ index.php?link=$1&action=show&id=$2 [L]
А так:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?link=$1&action=show&id=$2 [L]
не работает?
Почему же "не угодил"?
"Компьютерная программа делает то, что вы сказали ей делать,
а не то, что бы вы хотели чтобы она делала..." - (Из Мэрфологии, кажется)
И ничего не наоборот:
Вы сказали редиректить с localhost/catalog/74.html на localhost/index.php?link=cata...ion=show&id=74
она и редиректит - перенаправляет
Вам же (насколько я понял) надо чтобы по
localhost/catalog/74.html вызывалась (показывалась, подставлялась...) localhost/index.php?link=cata...ion=show&id=74
оставляя в адресной строке localhost/catalog/74.html
Для этого R=301 не нужно
ИМХО сейчас работает...
Ждал 2 дня :)
Попробовать Подтолкнуть?
Не все, конечно, хотя бы по группам...
bnbs, только не понял, зачем htaccess трогать
Вы тем самым прогоняете все статические файлы через PHP-интерпретатор -
доп. нагрузка, да и не нужно здесь это - страницы то уже готовые...
лучше уж сделать, как сказал _mihey (и SellingFeis )
(ИМХО),
в .htaccess:
RewriteRule ^(.*)\.htm$ index.php?page=$1 [L]
в самом index.php:
<?php
readfile($_GET['page']."htm");
?>
НО! уже существующие файлы все равно придется переделывать.
Ведь иначе код, который в header и footer будет вне тегов <html>
На Аничковом мосту смотрелся бы классно...
burunduk,
Какой-то div из левого меню (?) накрывает эту строчку
<div id="menu_left"> ?
попробовать в #menu_left {position:absolute;} задать ширину?
Вы лукавите ;)
Что не понравилось:
При выводе на экран не учитывается кол-во ссылок - кол-во разделителей (по дефолту - <br>) всегда одно и то же (4)
Старый код в этом отношении более правильный - ставит ровно столько разделителей, сколько нужно
При кол-ве ссылок=1 выводит ее 4 раза...
(имхо, перемудрили в show_link() : для данной реализации во втором if надо > а не >= )
Все выше написанное сугубо ИМХО