RewriteRule, подскажите

oksale

Новичок
RewriteRule, подскажите

Задача: если передается параметр $id, преобразовать путь в ЧПУ, иначе перенаправить на главную. Как связать это вместе, не понимаю.

Сейчас сделала первую часть:
PHP:
RewriteEngine On
Options +FollowSymlinks -Multiviews
RewriteBase /

RewriteRule ^part([0-9]+).htm/?$ part.htm?id=$1
Помогите со второй, плз.
 

Фанат

oncle terrible
Команда форума
можно раскрыть понятие "преобразовать путь в ЧПУ"?
 

SombreAdm

Новичок
у меня вот так работает

RewriteEngine On
RewriteBase /

# Редиректы
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /index.php?p=$1

-~{}~ 20.03.07 16:24:

ну это общий вариант - когда любой ненайденный адрес вида

/some.(ext)
/some/

ведет в /index.php?p=/some.(ext)

для твоего случая

RewriteRule ^part([0-9]+).htm$ /part.htm?id=$1
 

oksale

Новичок
Не совсем то что нужно. Необходимо именно для файла part.htm задать правило что если параметры есть, преобразуем. Иначе перенаправляем.
 

Dovg

Продвинутый новичок
Необходимо именно для файла part.htm задать правило что если параметры есть, преобразуем. Иначе перенаправляем.
если после htm идет знак вопроса, после чего другие символы, то преобразуем
Если строка заканчивается на htm, то перенаправляем
?
 

Фанат

oncle terrible
Команда форума
а чем не устраивает part.htm инклюдить в индексе?
и почему у пхп скрипта такое расширение странное?
 

Gorynych

Посетитель PHP-Клуба
обратите внимание на http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond Среди переменных, которые можно использовать при составлении условий, есть и строка запроса.

и подумайте над тем, о чем пишет Фанат, довольно часто вместо того, чтобы искать как сделать что-то, можно быстрее и эффективнее добиться нужного результата иным способом.
 
Сверху