# Apache Direktiven RewriteEngine



## BJGTomcom (28. Juli 2008)

Hallo,

ich möchte gern mit dem Zend Framework ein MVC Web erstellen, jedoch habe ich Probleme mit den Apache Direktiven.
Wenn ich hier
```
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [L]
</IfModule>
```
eintrage, bekomme ich beim Aufruf immer ein "_400 Bad Request error_".
Was mach ich denn falsch.

Danke im vorraus.
Oliver


----------



## Till (28. Juli 2008)

Wo genau hast Du das eingetragen? In einer .htaccess datei oder im apache Direktiven Feld des Webs? Gibt es eine detilliertere Fehlermeldung im error.log der Webseite?


----------



## BJGTomcom (28. Juli 2008)

Ich habe es in dem apache Direktiven Feld des Webs eingetragen.

Leider ist die error.log noch nicht aktuell, oder gibt es eine Möglichkeit diese zu aktualisieren
Danke Oliver


----------



## BJGTomcom (28. Juli 2008)

Hallo,

leider wird für den error 400 kein Eintrag in die error.log gemacht.
Oliver


----------



## vzcrsa (3. Aug. 2008)

*gleiches problem mod_rewrite*

meine htaccess sieht so aus:
Options -MultiViews

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteRule ^articles/{0,1}$   articles.php [QSA,L]
RewriteRule ^articles/entry/([^/.]+)/{0,1}$   articles.php?action=viewarticle&articleUri=$1 [QSA,L]
RewriteRule ^articles/entry/{0,1}$   articles.php?action=viewarticle&articleUri=$1 [QSA,L]
RewriteRule ^articles/category/([^/.]+)/{0,1}$   articles.php?action=viewcategory&articleCatUri=$1 [QSA,L]

RewriteRule ^news/{0,1}$  news.php [QSA,L]
RewriteRule ^news/([^/.]+)/{0,1}$  news.php?newsUri=$1 [QSA,L]

RewriteRule ^blogs/{0,1}$   blogs.php [QSA,L]
RewriteRule ^blogs/all/([0-9]+)/([0-9]+)/{0,1}$  blogs.php?page=$2&per_page=$1  [QSA,L]
RewriteRule ^blogs/top/{0,1}$   blogs.php?action=top_blogs [QSA,L]
RewriteRule ^blogs/top/([0-9]+)/([0-9]+)/{0,1}$   blogs.php?action=top_blogs&page=$2&per_page=$1 [QSA,L]
RewriteRule ^blogs/top_posts/{0,1}$   blogs.php?action=top_posts [QSA,L]
RewriteRule ^blogs/tag/([^/.]+)/{0,1}$   blogs.php?action=search_by_tag&tagKey=$1 [QSA,L]
RewriteRule ^blogs/tag/{0,1}$   blogs.php?action=search_by_tag&tagKey= [QSA,L]
RewriteRule ^blogs/posts/([^/.]+)/tag/([^/.]+)/{0,1}$   blogs.php?action=search_by_tag&tagKey=$2&ownerName=$1 [QSA,L]
RewriteRule ^blogs/posts/([^/.]+)/category/([^/.]+)/{0,1}$   blogs.php?action=show_member_blog&ownerName=$1&categoryUri=$2 [QSA,L]
RewriteRule ^blogs/entry/([^/.]+)/{0,1}$   blogs.php?action=show_member_post&postUri=$1 [QSA,L]
RewriteRule ^blogs/entry/{0,1}$    blogs.php?action=show_member_post&postUri= [QSA,L]
RewriteRule ^blogs/posts/([^/.]+)/{0,1}$   blogs.php?action=show_member_blog&ownerName=$1 [QSA,L]
RewriteRule ^blogs/posts/{0,1}$   blogs.php?action=show_member_blog&ownerName= [QSA,L]
RewriteRule ^blogs/posts/([^/.]+)/([0-9]+)/([0-9]+)/{0,1}$   blogs.php?action=show_member_blog&ownerName=$1&page=$3&per_page=$2 [QSA,L]
RewriteRule ^blogs/posts/([^/.]+)/category/([^/.]+)/([0-9]+)/([0-9]+)/{0,1}$   blogs.php?action=show_member_blog&ownerName=$1&categoryUri=$2&page=$4&per_page=$3 [QSA,L]

RewriteRule ^events/{0,1}$  events.php?show_events=all&action=show [QSA,L]
RewriteRule ^events/all/([0-9]+)/([0-9]+)/{0,1}$  events.php?show_events=all&action=show&page=$2&per_page=$1  [QSA,L]
RewriteRule ^events/part/{0,1}$  events.php?show_events=all&action=show [QSA,L]
RewriteRule ^events/search/{0,1}$  events.php?action=search [QSA,L]
RewriteRule ^events/search/([^/.]+)/{0,1}$  events.php?action=search_by_tag&tagKey=$1 [QSA,L]
RewriteRule ^events/my/{0,1}$  events.php?action=show&show_events=my [QSA,L]
RewriteRule ^events/new/{0,1}$  events.php?action=new [QSA,L]
RewriteRule ^events/entry/([^/.]+)/{0,1}$  events.php?action=show_info&eventUri=$1 [QSA,L]
RewriteRule ^events/part/([^/.]+)/{0,1}$  events.php?action=show_part&eventUri=$1 [QSA,L]


so und in der ISPConfig Apache directives: habe ich folgendes stehen 
<Directory "/srv/www/web1/web">
Options +FollowSymLinks +SymLinksIfOwnerMatch
<IfModule mod_access.c>
Allow from all
</IfModule>
</Directory> 

aber es funktioniert nicht !!

wer kann mir hier weiterhelfen ??


----------



## Till (4. Aug. 2008)

@vzcrsa: Welche Fehlermeldung erhältst Du im error Log der Wesbeiet bzw. was ganeu geht nicht.


----------



## vzcrsa (5. Aug. 2008)

Ich erhalte die Fehlerseite 500 mehr nicht !!


----------



## Till (5. Aug. 2008)

Im error.log der Webseite muss eine aussagekräftigere Fehlermeldung stehen, sieh bitte dort nach und poste sie.


----------



## vzcrsa (6. Aug. 2008)

also das steht bei mir drin !!
*Internal Server Error*

 The server encountered an internal error or misconfiguration and was unable to complete your request.
 Please contact the server administrator,  webmaster@xxxxxxxxxxx.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 More information about this error may be available in the server error log.
 Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
  Apache/2.2.3 (Debian) PHP/5.2.0-8+etch11 mod_ssl/2.2.3 OpenSSL/0.9.8c Server at xxxxxxxxxxxx.de Port 80

und in der error.log steht:
[Wed Aug 06 09:49:34 2008] [alert] [client 2xx.xx.xxx.xx] /var/clients/client0/web13/web/.htaccess: Option MultiViews not allowed here

dazu noch eine frage lassen sich die direktiven nicht in einer template.datei anlegen so das ich mod_rewrite gleich für jeden user / domain , automatisch anlegen kann ???!!! wäre doch hier mal ne IDEE


----------



## Till (6. Aug. 2008)

> [Wed Aug 06 09:49:34 2008] [alert] [client 2xx.xx.xxx.xx] /var/clients/client0/web13/web/.htaccess: Option MultiViews not allowed here


Ok, wie die Fehlermeldung besagt, Du versuchst die Option Multiviews in einer .htaccess datei zu setzen, das ist aber nicht erlaubt. Um es zu erlauben, füge:

MultiViews

zur AllowOverride Zeile:

AllowOverride Indexes AuthConfig Limit FileInfo

in der apache2.conf bzw. httpd.conf Datei im Bereich für das Directory /var/www/*/web hinzu und starte apache neu.


----------



## vzcrsa (6. Aug. 2008)

jetzt bekomme ich den fehler !

[Wed Aug 06 12:46:39 2008] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results


----------



## Till (6. Aug. 2008)

Das ist kein Fehler, nur eine Warnung. Das ist ok so.


----------



## vzcrsa (6. Aug. 2008)

ok warum geht der webserver dann nicht ?? im ACP steht webserver offline


----------



## Till (6. Aug. 2008)

Was ist ACP?


----------



## vzcrsa (6. Aug. 2008)

im Admin Panel / bereich 

[FONT=Verdana, Arial, Helvetica, sans-serif]Web-Server:[/FONT]        [FONT=Verdana, Arial, Helvetica, sans-serif]*Offline*[/FONT]              [FONT=Verdana, Arial, Helvetica, sans-serif]FTP-Server:[/FONT]        [FONT=Verdana, Arial, Helvetica, sans-serif]*Online*[/FONT]              [FONT=Verdana, Arial, Helvetica, sans-serif]SMTP-Server:[/FONT]        [FONT=Verdana, Arial, Helvetica, sans-serif]*Online*[/FONT]              [FONT=Verdana, Arial, Helvetica, sans-serif]POP3-Server:[/FONT]        [FONT=Verdana, Arial, Helvetica, sans-serif]*Online*[/FONT]              [FONT=Verdana, Arial, Helvetica, sans-serif]DNS-Server:[/FONT]        [FONT=Verdana, Arial, Helvetica, sans-serif]*Online*[/FONT]              [FONT=Verdana, Arial, Helvetica, sans-serif]mySQL-Server:[/FONT]        [FONT=Verdana, Arial, Helvetica, sans-serif]*Online

das ist doch vom apache2  und wenn der nicht startet kann es ja schon von gruand auf nicht gehen
*[/FONT]


----------



## Till (6. Aug. 2008)

Postae mal die Ausgabe von:

netstat -tap | grep www


----------



## vzcrsa (6. Aug. 2008)

tcp6       0      0 *:www                   *:*                     LISTEN     14087/apache2
tcp6       0      0 vadmin13:www            pD95DFD03.dip.t-di:3888 TIME_WAIT  -
tcp6       0      0 vadmin13:www            pD95DFD03.dip.t-di:3896 TIME_WAIT  -
tcp6       0      0 vadmin13:www            pD95DFD03.dip.t-di:3887 TIME_WAIT  -
tcp6       0      0 vadmin13:www            pD95DFD03.dip.t-di:3886 TIME_WAIT  -


----------



## vzcrsa (6. Aug. 2008)

so apache läuft wieder : jetzt kommt das nächste EROR 404 obwohl die datein vorhanden sind ! ???????


----------



## vzcrsa (6. Aug. 2008)

na kann mir hier denn keiner eine vernüftige antwort geben ???


----------



## vzcrsa (7. Aug. 2008)

Wie kann ich es einrichten das für alle NEUEN user und bestehenden mod_rewrite direkt aktiv ist ??? bzw. für den ganzen server ???????


----------



## Till (7. Aug. 2008)

> na kann mir hier denn keiner eine vernüftige antwort geben ???


Ehrlich? Wenn Du so fragst, nein.

Wenn Du es os eilig hast, kannst Du z.B. auf der ISPConfig Seite Support kaufen. Ansonsten wirst Du damit leben müssen, dass ich hier ein oder zweimal pro Tag ins Forum sehe und Fragen beantworte.

Standardmäßig ist mod_rewrite aktiv, wenn Du dem perfect setup gefolgt bist. Ansonsten kommen alle globalen Einstellungen in die apache2.conf oder httpd.conf Datei.


----------



## vzcrsa (7. Aug. 2008)

ich binn dem standard setup gefolgt ! nur werden die seiten nicht angezeigt wenn ich die .htaccess aktiviere. dann kommt error 500 

na was heist eilig wenn einer wie wir nun schon 2 wochen daran sitzen, wird mann mal ungeduldig oder ? wir waren in vershiedenen foren und keiner kann uns hier die lösung bieten.

also bitte vilmals um entschuldigung.


----------



## vzcrsa (7. Aug. 2008)

ok habe endlich das problem gefunden = vor lauter zahlen und zeichen habe ich einen fehler in der htaccess gemacht       Option MultiViews  !!!!

na gut hoffe das es jetzt klappt !


----------

