Перепишите URL в подпапку с несколькими приложениями - PullRequest
1 голос
/ 05 ноября 2010

У меня есть несколько проектов CakePHP, размещенных в одном домене, и несколько случайных папок с файлами randons, для организации я разделил APP по папке, но у меня есть «основное» приложение, которое находится в папке site , когда пользовательдоступ к домену должен переписать URL на / site, мои проблемы с случайными папками, когда я пытаюсь получить доступ к domain.com/exist_folder, он перенаправляет меня на /site.

Я не хочу переписывать, если файл / каталог существует насервер.

Пример дерева FTP

public_html/
 -cakephp (CakePHP Core)/
   - ...
 -site (CakePHP App)/
   - ...
   -.htaccess
   -webroot/
     -.htaccess
 -exist_folder/
   - whateverfiles.ext
 -app1 (CakePHP App)/
   - ...
   -.htaccess
   -webroot/
     -.htaccess
 -folder1/
 -temp/
   -images
   -videos
 -.htaccess

Мой .htaccess

public_html / .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule    ^$    site/    [L]
    RewriteRule    (.*) site/$1    [L]
</IfModule>

site / .htaccess AND app1 / .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>

site / webroot / .htaccess AND app1 / webroot /.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

1 Ответ

0 голосов
/ 09 ноября 2010

Таким образом, в основном у вас есть несколько папок, которые вы не хотите передавать через Cake-маршрутизацию и диспетчер.Для этого добавьте следующие строки в ваш файл public_html / .htacess:

RewriteRule   ^(exist_folder).* - [NC,L]

Это позволит получить прямой доступ к папке exist_folder, которая находится в корневом каталоге.Доступ к http://domain.com/exist_folder возможен после добавления этого правила.

Если вы ищете автоматизированное решение (Ваши строки: я не хочу переписывать, если файл / каталог существует на сервере), создайте phpфайл, который сгенерирует файл .htaccess с вышеупомянутым RewriteRule на основе is_dir ().Всякий раз, когда вы добавляете папку, запускайте этот php-файл, который сгенерирует .htaccess со всеми добавленными исключениями:)

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