В .htaccess Код (Text): RewriteEngine On RewriteRule ^blog$|^blog/ blog.php [L Необходимо: чтобы при /blog/2009/06/... и при просто /blog (без слэша) срабатывал blog.php. Можно ли как-то сократить или переписать более правильно, чем у меня? Ругателям сразу: 1. Это лишь шаблон правил, которые будут создаваться автоматически при появлении модулей cms, поэтому и спрашиваю. 2. Мне не надо направлять все запросы к какому-то скрипту и в нём разруливать что куда, надо именно через .htaccess
Код (Text): RewriteRule ^blog/(\d{4})/(\d{2})/?$ blog.php [L] # перенапраявляет blog/ГГГГ/ДД на blog.php RewriteRule ^blog/?$ blog.php [L] # перенапраявляет blog (или blog/) на blog.php http://www.egoroff.spb.ru/portfolio/apache/ - тут две отличные статьи. Одна из них есть перевод документации, вторая - решение конкретных задач с примерами.
lexa, не-не-не, всё что дальше /blog/ я привёл лишь как пример, что там что-то может быть, что уже будут обрабатываться скриптом, на который направляется.
Код (Text): RewriteRule ^blog(/.*)?$ blog.php [L] ^ - начало анализируемой строки blog - обязательно будет присутствовать в строке (/.*) - подправило, говорящее: / - наличие слеша . - любой символ * - возможно наличие неограниченное количество раз или отсутствие (того, что левее, в данном случае это .) ? - возможно наличие подправила или его отсутствие (подправила находятся слева знака ?, в нашем случае это будет группа (/.*), тк определена в скобки) $ - конец анализируемой строки blog.php - если условия будут выполнены, запустить файл blog.php [L] - это последнее правило, после него никакие другие правила не выполнять