Jump to content
Калькуляторы

Вопрос по mod_rewrite

Есть сайт с тремя точками входа: index.php, client.php и operator.php. Индексный файл по умолчанию (DirectoryIndex) — index.php.

Нужно преобразовывать пути в URI следующим образом:

site/                        -> index.php
site/id                      -> index.php?id=$id
site/path/                   -> index.php?cat=$path
site/path/id                 -> index.php?id=$id&cat=$path
site/path1/path2/path3/      -> index.php?cat=$path (/path1/path2/path3)
site/path1/path2/id          -> index.php?id=$id&cat=$path
site/user/                   -> client.php
site/user/id                 -> client.php?id=$id
site/user/path/              -> client.php?cat=$path
site/user/path/id            -> client.php?id=$id&cat=$path
site/user/path1/path2/path3/ -> client.php?cat=$path
site/user/path1/path2/id     -> client.php?id=$id&cat=$path
site/oper/                   -> operator.php
site/oper/id                 -> operator.php?id=$id
site/oper/path/              -> operator.php?cat=$path
site/oper/path/id            -> operator.php?id=$id&cat=$path
site/oper/path1/path2/path3/ -> operator.php?cat=$path
site/oper/path1/path2/id     -> operator.php?id=$id&cat=$path

То есть путь передается в переменной cat, содержимое после последнего слеша передается в переменной $id и если подкаталог первого уровня равен user или oper, то они из пути удаляются и меняется точка входа.

Если в строке адреса были другие переменные (был GET-запрос с параметрами), они должны сохраниться.

Возможет также такой вариант:

site/user -> user.site/ -> client.php

site/oper -> oper.site/ -> operator.php

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this