Apache переписать правила редукса - PullRequest
0 голосов
/ 26 апреля 2009

У меня есть REST-фреймворк, который при подключении к любому каталогу должен просто работать (TM), и, кажется, он работает нормально, когда у меня есть проекты в подкаталогах, но не в том случае, если он находится в корневом каталоге. Итак, приведено несколько примеров каталогов;

/
/project1
/bingo/project2
/hoopla/doopla/minor/project3

Все это прекрасно работает, за исключением того, что я получаю "приколы" *, когда проект запускается в корневом каталоге (я полагаю, это сложно объяснить, но переписывание второго уровня не работает должным образом). Вот моя попытка создания общего файла .htaccess:

RewriteEngine On
RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_URI} ^$
RewriteRule .* ./ [R,L]
RewriteRule ^index.php - [L]
RewriteRule (.*) index.php?q=$1 [QSA,PT]

(И да, у всех проектов есть подкаталог ./static, который игнорируется при переписывании) Я пытаюсь достичь набора правил перезаписи, которые работают в большинстве случаев (что опять-таки включает проект в каталог, который обслуживает веб-сервер). Я давно не переписываю правила, а если бы я дал хороший совет, я хотел бы получить любые полезные советы и рекомендации (и да, я прошел слишком много вводных статей. Мне нужен серьезный сок).

  • Больше информации о забавах; Мой веб-сервер имеет docroot в одном месте (в / usr / share / apache2 / default-site /), но набор правил, который говорит, что / projects извлекается из другого места, которое не является подкаталогом docroot (/ home / user / Проекты /). Когда я иду туда, я получаю список подкаталогов / projects, и если одна из этих подкаталогов вызывается (restmapp) с предложенными правилами перезаписи, я получаю;

    Запрошенный URL /home/user/Projects/restmapp/index.php не найден на этом сервере.

1 Ответ

0 голосов
/ 26 апреля 2009

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

RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?q=$0 [L,QSA]

Редактировать Кроме того, вы можете использовать флаг R для принудительного внешнего перенаправления или активировать функцию ведения журнала в mod_rewrite , чтобы увидеть, как запросы переписываются / перенаправляются внутри.

...