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

  • Автор темы Автор темы oksale
  • Дата начала Дата начала

oksale

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

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

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

RewriteRule ^part([0-9]+).htm/?$ part.htm?id=$1
Помогите со второй, плз.
 
можно раскрыть понятие "преобразовать путь в ЧПУ"?
 
у меня вот так работает

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
 
Не совсем то что нужно. Необходимо именно для файла part.htm задать правило что если параметры есть, преобразуем. Иначе перенаправляем.
 
Необходимо именно для файла part.htm задать правило что если параметры есть, преобразуем. Иначе перенаправляем.
если после htm идет знак вопроса, после чего другие символы, то преобразуем
Если строка заканчивается на htm, то перенаправляем
?
 
а чем не устраивает part.htm инклюдить в индексе?
и почему у пхп скрипта такое расширение странное?
 
обратите внимание на http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond Среди переменных, которые можно использовать при составлении условий, есть и строка запроса.

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