переслать запрос из основной папки в подпапку - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть следующая файловая структура:

  • корневая папка
    • папка приложения (непубличная)
    • папка сайта
      • скрипты, стили и папки с изображениями (общедоступные)
      • php папка включаемых файлов (непубличная)
      • index.php
      • .htaccess (для переписывания)
    • другая папка сайта (admin, subdomain, ...)
      • скрипты, стили и папки с изображениями (общедоступные)
      • php папка с включенными файлами (не публичная)
      • index.php
      • .htaccess (для переписывания)
    • папка ресурсов (общедоступная)

Папка application - это папка с общими PHP-классами, доступ к которой осуществляется только на локальной машине. Папка resources доступна из любой точки мира, там я храню загруженные пользователем файлы.

В каждой папке site есть только 1 файл, обрабатывающий запрос: index.php . URL www.example.com / site / item / 5 уже переписывается .htaccess-файлом в www.example.com / site / index.php? Q = item / 5 . Индекс-скрипт работает с $ _REQUEST ["q"].

Я могу получить доступ к каждой папке сайта напрямую, перейдя по ссылке www.example.com / site , www.example.com / admin или www.example.com / что-то , так как все используют свой соответствующий index-файл.

Теперь я хочу добавить только .htaccess-файл в корень, чтобы www.example.com перенаправлял на www.example.com/site, не нарушая мои правила mod_rewrite.

Если кто-нибудь может дать мне совет, потому что соответствующие вещи, которые я пробовал, не работают должным образом (www.example.com/admin все равно должны быть доступны напрямую, ...)

Если понадобится дополнительная информация, я с удовольствием предоставлю ее. Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Это решение, которое я действительно использовал.

RewriteEngine onRewriteCond% {REQUEST_FILENAME}! -FRewriteCond% {REQUEST_FILENAME}! -DRewriteRule ^ (. *) $ Site / index.php? Q = $ 1 [L, QSA]RewriteRule ^ $ site / index.php [L, QSA]

Возможно, я могу опустить последнюю строку, переписав ее немного, но, по крайней мере, она работает, как я ожидаю!

0 голосов
/ 11 февраля 2011

Попробуйте это правило:

RewriteRule ^$ /site [L,R]

Это перенаправит запрос / на /site.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...