2015-04-12 2 views
1

В принципе, я работаю над сайтом, который живет в каталоге на другом сайте, то есть у меня нет доступа к файлам хоста. Я пытаюсь подражать обычной структуре сайта public_html и private папкам.Rewrite в подкаталог с поддержкой MVC

Для этого нужен mydir каталог для перенаправления на public.
Мне также нужно это для поддержки архитектуры MVC.

я в настоящее время следующие:

Внутри mydir каталоге:

RewriteEngine on 
RewriteBase /mydir/public/ 
RewriteRule ^((?!public/).*)$ /mydir/public/$1 [L,NC] 

Внутри public каталоге:

RewriteEngine on 
RewriteBase /public/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^([^?]*)$ /mydir/public/index.php?path=$1 [NC,L,QSA] 

По большей части это работает отлично, однако у меня есть повторяющиеся каталоги.
, например. /mydir/ - то же, что и /mydir/public.

В случае, если я объяснил это плохо, вот несколько примеров того, что я пытаюсь сделать:

  • /mydir/index.php ->/mydir/
  • /mydir/blog/ ->/mydir/public/blog/
+0

Вы говорите о '' main' и public' каталогов, но как насчет 'mydir' каталога? Во всяком случае, вы можете делать то, что хотите, только с одним правилом в htaccess основного каталога (другие становятся бесполезными) –

+0

Извините, не значит для этого. Кроме того, как я могу это сделать? – Braden1996

+0

Принимая во внимание ваш комментарий, решение должно состоять только в htaccess в 'mydir' с этим правилом:' RewriteCond% {REQUEST_FILENAME}! -f RewriteRule^(. *) $ /mydir/public/index.php?path = $ 1 [NC, L, QSA] ' –

ответ

0

У меня проблема:

Это был мой единственный .htaccess файл a го он находился внутри mydir каталоге:

RewriteEngine on 

RewriteBase /webapps/ 

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

RewriteRule ^((?!public/).*)$ public/index.php?path=$1 [L,NC] 
Смежные вопросы