mod_rewrite espression для мультиклиентского приложения - PullRequest
0 голосов
/ 21 марта 2012

У меня есть приложение php, которое обслуживает нескольких клиентов.Код размещается в корне домена и является общим для всех клиентов.Каждый клиент может получить доступ к своей странице, используя параметр строки запроса «id».

Мне нужен совет и пример кода, как выполнить эту маршрутизацию через mod_rewrite или это лучший способ сделать это через скрипт маршрутизации php:

Домашняя страница :

www.example.com/customerA --> www.example.com/customerA/main?id=1
www.example.com/customerB --> www.example.com/customerB/main?id=4

Примечание: "main" - это main.php файл, не отображающий расширения файла.Подпапки клиентов не являются реальными.

Внутренние страницы используют дополнительные параметры, такие как:

www.example.com/customerA/page1?id=1&par1=5

На СТОРОНА СЕРВЕРА все перезаписи должныинтерпретируется как www.example.com/main?id=4 без виртуальной подпапки.

Спасибо.

1 Ответ

0 голосов
/ 21 марта 2012

Вот что должно работать:

RewriteRule ^/customerA /customerA/main?id=1 [QSA,NC,R=301,L]
RewriteRule ^/customerB /customerB/main?id=4 [QSA,NC,R=301,L]

RewriteRule ^/(customer(A|B))/main /main [QSA,NC]

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

Если вы хотите быть более общим:

# if URL is not a real file...
RewriteCond %{SCRIPT_FILENAME} !-f
# if URL is not a real folder...
RewriteCond %{SCRIPT_FILENAME} !-d
# ...and if adding "php" points to a real file...
RewriteCond %{SCRIPT_FILENAME}.php -f
# ...then rewrite internally with "php" extension:
RewriteRule (.*) $1.php [QSA,NC]

Надеюсь, это поможет.

...