пакета Денвер.правила htaccess

Мне нужно переписать правила в моей установке easyphp на windows 7.

Мне нужно убедиться, что правила загружены правильно, и мне не нужно создавать тонны правил. также, когда я копирую .htaccess на мой сервер (Линукс) я хочу убедиться, что он работает правильно.

У меня нет опыта в этом, и вот что я нашел, копаясь в интернете:

RewriteRule (.*) index.php?s=

теперь, если у меня есть базовая страница, такая как "contact-us", это нормально, но если у меня есть подстраницы, это не. как создать вложенные папки?

спасибо

1 ответов


вот что вам нужно сделать:

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z0-9_\-]+)/?$ index.php?main= [NC,L] 
RewriteRule ^([a-z0-9_\-]+)/([a-z0-9_\-]+)/?$ index.php?main=&sub= [NC,L]

Это позволит вам иметь такие страницы, как:

http://www.domain.com/mainpage/ or
http://www.domain.com/mainpage or
http://www.domain.com/mainpage/subpage/ or
http://www.domain.com/mainpage/subpage

/? означает, что косая черта является необязательной

[NC] это делает тестовый регистр нечувствительным-различия между "A-Z" и "a-z" игнорируются как в расширенной TestString, так и в CondPattern. Этот флаг эффективен только для сравнения TestString и CondPattern. Это не влияет на файловую систему и подзапросов проверяет.

[L] флаг [L] заставляет mod_rewrite прекратить обработку набора правил. В большинстве контекстов это означает, что если правило совпадает, дальнейшие правила обрабатываться не будут.

вся информация о флагах и правилах:http://httpd.apache.org/docs/current/mod/mod_rewrite.html