/ / Zend Framework - не розглядайте / public / каталог як контролер - zend-framework

Zend Framework - не розглядайте / public / directory як контролер - zend-framework

Чи можна замовити каталог через http у каталозі Zend / public /, не розглядаючи його як контролер?

Наприклад, у мене є каталог, / public / facebook / який містить дані програми для facebook, але Zend (очікувана поведінка за замовчуванням), коли помилково надіслано запит про відсутність "facebook controller" http://mysite.com/facebook.

Відповіді:

0 для відповіді № 1

Це відбувається тому, що стандартні RewriteRules з Zend перенаправляють всі запити до Bootstrapper Zend Framework (index.php).

Найкраще, щоб зробити, IMHO, це додативиняток із цього правила. Тоді існує більше одного способу зробити це.Ви можете використовувати RewriteCond (і, наприклад, уникати загального перенаправлення для існуючого каталогу або файлів в / public). Але ви, можливо, можете його відфільтрувати в виразі RewriteRule також. Наприклад, за винятком в RewritreRule, так що без RewriteCon:

RewriteRule !(public/facebook/(.*.php))|(public/(.*.pdf))|(externalauthent.php)|(favicon.ico)|(images/(.*.(ico|gif|jpg|png|bmp|JPG|JPEG|BMP|GIF|PNG)))|(css/(.*.css))|(js/(.*.*))$ /index.php [L]

0 для відповіді № 2

Якщо у вас є вміст у цьому URL-адресі, ZF не намагається знайти контролер facebook. Вам потрібно додати папку з назвою facebook та файл index.php у цю папку


0 для відповіді № 3

Ця робота для мене:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}  !^/public_directory_name
RewriteRule ^.*$ index.php [NC,L]

Просто замініть "public_directory_name" з назвою каталогу, у якому ви не хочете, щоб Zend розглядався як контролер.

Відповів іншим сформульованим питанням: htaccess - не переписуйте в цьому випадку