2009-06-29 2 views
1

Ich habe eine kleine Anwendung in Zend Framework geschrieben, die ich in Drupal Page einbetten möchte. Beide Apps (ZF und Drupal) befinden sich in derselben Domain.Zend Framework und Drupal auf der gleichen Domain

Aber nach meinem Wissen muss ZF in der Wurzel des Servers installiert werden, wo ich bereits Drupal habe. Mein Anliegen ist, dass der ZF-Controller Drupal-Seitenanforderungen als fehlerhafte Controller-Anfragen missbraucht.

Kann es eine einfache Lösung geben, um diesen Konflikt zu verhindern? Vielleicht wäre es einfacher, die App für einen weniger restriktiven Rahmen umzuschreiben, aber ich muss überprüfen, dass ich alle Optionen abgewogen habe.

Vielen Dank im Voraus, wie Stackoverflow eine wirklich hilfreiche Ressource erwiesen hat, und ich plane einige Zeit, um die Menschen zu helfen, in der Domäne meiner Expertise

Antwort

0

Drupal in einem Verzeichnis lebt glücklich zu vergeben, es doesn‘ t darauf bestehen, root zu sein. Ich weiß überhaupt nicht viel über Zend.

Wenn Sie beide im Stammverzeichnis des Webservers installieren möchten, müssen Sie ein wenig an die Programmierung anpassen. Ich würde wahrscheinlich einen Blick in Drupal's index.php werfen und etwas Code hinzufügen, der 404 an Zend sendet, anstatt dass Drupal damit umgehen muss. In der Tat könnte es eine Möglichkeit geben, dies mit einer Art von mod_rewrite oder mod_proxy Magie auf der Apache-Ebene zu tun.

1

Ich habe bestimmte URLs auf einem ZF-basierten System ausgeführt und den Rest auf index.php zurückgreifen lassen. Es war ein kundenspezifischer Code, keine Drupal-Installation, aber ich kann nicht erkennen, dass es dort einen Unterschied machen würde.

Hier ist, wie ich es mit einer .htaccess-Datei haben:

### Zend Framework for main site, the rest fallback to /index.php 
RewriteEngine on 
RewriteBase/
# Not if there is a file or directory that matches 
RewriteCond %{REQUEST_FILENAME}  !-f 
RewriteCond %{REQUEST_FILENAME}  !-d 

RewriteRule ^register /?mod=register& [QSA,L] 
# ... and other rewrite aliases to index.php 

# Alternates that redirect 
RewriteRule ^friend/(.*) /friends/$1 [R=301,L] 
RewriteRule ^members$ /member/  [R=301,L] 

# These URLs are handled by ZF 
RewriteRule ^member(.*)$ /zf.php  [L] 
RewriteRule ^friends /zf.php   [L] 
RewriteRule ^about/ /zf.php   [L] 
RewriteRule ^faq /zf.php    [L] 

Wie Sie sollten sehen können, das Zend Framework Bootstrap ist in /zf.php, nicht die übliche /index.php

-5

Dies ist möglicherweise nicht besonders hilfreich für Sie. Aber gibt es etwas speziell für das du Zend brauchst? Drupal ist ein ziemlich guter Rahmen für sich. Ich würde eine Vermutung riskieren, dass der Versuch, zwei Seite an Seite arbeiten zu lassen, mehr Aufwand wäre, als es wert ist, da es ziemlich nicht Standard ist.