Seite 1 von 3

mod_rewrite problem

Verfasst: Do 20. Nov 2003, 12:08
von emergence
kennt sich irgend jemand mit mod_rewrite aus ?
irgendwie funktioniert es bei mir nur immer bis zu einen gewissen grad...
ein paar allgemeine fragen dazu...
1. die mod_rewrite rules kann man die zb nur für ein verzeichniss vergeben ?
sagen wir mal die sollen nur gelten für das verzeichnis http://localhost/directory/
wobei ich jedoch noch die .htaccess direkt in dem /directory/ ablegen möchte.

2. irgendwie möchte ich alle anfragen die innerhalb eines verzeichnisses kommen auf /directory/index.php (ohne variablen übergabe) umleiten...
bei mir stürzt immer der apache server ab wenn ich das versuche...

hier die problematik bzw die aufgaben stellung:
innerhalb des verzeichnisses sollen alle anfragen auf *content.php auf index.php umgeleitet werden... (wie muss die rewriterule aussehen ?)
die links sehen ca so aus (index_1-file_any.txt-debug_on-content.php)
die anzahl der einzelnen blöcke variert von 1-10 (1 block = index_1) trennzeichen (-)

alle anderen urls sollen normal aufgerufen werden zb (/directory/print.php) soll ohne rewrite aufgerufen werden.

mit diesem tip wäre mir immens geholfen... (ich teste gerade ein neues script für nen kunden) und dies ist der einzige scheiss mit dem ich nicht zusammenkomme...

Verfasst: Do 20. Nov 2003, 12:48
von Godspeed
Moin
Bin auch gerade an der Sache dran, nur weiss ich nicht wo und was ich umschreiben muss damit er mir die "anderen" Links anzeigt. Ich vermute das ich das in der Navigation machen muss. Habe Contenido 4.3.2..
Zu Mod_rewrite und .htaccess hab ich ne nette Seite gefunden vieleicht kann sie dir helfen

Gruß Alex

Verfasst: Do 20. Nov 2003, 12:49
von Godspeed

Verfasst: Do 20. Nov 2003, 12:58
von emergence
einen grossteil dieser artikel habe ich schon gelesen(diesen einen vor 10 minuten) nur wie gesagt das einzige was mir noch fehlt ist die rewriterule für genau diesen fall...

meine rewriterule sieht momentan so aus

RewriteRule ^/directory/[a-zA-Z]+content.php /directory/index.php [PT]

nur führt dies zu einem systemabsturz der sich gewaschen hat...

das andere problem mit url rewrite on the fly innerhalb der anderen dateien ist das kleinere übel mit dem ich auch kein problem habe...

bei mir übernimmt die index.php die auswertung des urlstrings + sämtlich post variablen und querystrings... da läufts auch einwandfrei...

ich brauch nur mehr die umleitung auf die index.php alles andere müsste dann von selbst laufen (ein rewrite der posts hab ich zwar noch nicht aber das ist ein anderes problem)

Verfasst: Do 20. Nov 2003, 13:06
von timo
wenn der Apache abstürzt, würd ich panisch durch die Gegend laufen!

Eventuell hilft das hier:
http://marc.theaimsgroup.com/?l=apache- ... 511791&w=2

Verfasst: Do 20. Nov 2003, 13:18
von Godspeed
bei mir funzt noch nicht mal die .htaccess, die muss ich doch ins Verzeichnis CMS kopieren?

Verfasst: Do 20. Nov 2003, 13:34
von emergence
@timo
das hatte ich mir auch schon gedacht -> error log schreibt bei mir
[Wed Nov 19 17:31:37 2003] [error] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

aber das ist mir an sich noch egal wenn die rule stimmen würde hab ich dieses problem ja nicht mehr... (und der taskmanager schaft irgendwie den prozess zu beenden...

@Godspeed

zu .htaccess
in apache/conf/httpd.conf finden sich etwas was gegeben sein muß...

du findest dort

#
# Each directory to which Apache has access, can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# permissions.
#
# for mod_rewrite set AllowOverride to all
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

und wie ich dort selbst ergänzt habe ohne das All wird die .htaccess nicht ausgeführt... (dafür steht das AllowOverride) ob das der provider überhaupt frei gibt ist ne andere geschichte - auf meinem lokalen apache server kann ich aber machen was ich will...

für mod_rewrite muss natürlich auch das modul geladen werden (logisch)
meistens ist bei den server in der httpd.conf diese zeile auskommentiert
LoadModule rewrite_module modules/mod_rewrite.so
(bei Apache/1.3.27)

für die .htaccess muss am beginn der datei oder am ende (je nachdem was bereits vorkonfiguriert wurde) folgendes enthalten sein:

Options +FollowSymlinks
RewriteEngine On

sonst tut sich nämlich gar nichts mit den rules...

Verfasst: Do 20. Nov 2003, 13:38
von emergence
na ja die .htaccess kann man ansich in jedes verzeichniss kopieren wo weitere beschränkungen gelten sollen -> was ich nicht weiss ob man dies auch machen darf(kann) wenn man mit mod_rewrite arbeitet (das steht in keiner dokumentation)

Verfasst: Do 20. Nov 2003, 13:42
von timo
http://httpd.apache.org/docs/mod/mod_re ... ewriteRule

da steht, daß man eine rewrite-rule auch in einem .htaccess-File verwenden darf

Verfasst: Do 20. Nov 2003, 13:49
von emergence
das ist auch so gedacht (die beispiele beziehen sich auch darauf)

meine idee...

die .htaccess befindet sich in http://localhost/directory/
innerhalb der datei .htaccess sind die rewriterules definiert

die frage die sich mir nur stellt dürfen die rules nur innerhalb von
http://localhost/.htaccess stehen oder kann ich sie wie oben innerhalb von
http://localhost/directory/.htaccess ablegen ?

wobei sich im zweiten fall die rules nur auf das verzeichniss
http://localhost/directory/ beziehen dürfen...

Verfasst: Do 20. Nov 2003, 14:34
von Godspeed
JUCHU
danke es funzt supi

Verfasst: Do 20. Nov 2003, 17:13
von emergence
@Godspeed

schön das es bei dir geht, ich steh immer noch vor dem gleichen problem...

Verfasst: Do 20. Nov 2003, 17:56
von emergence
irgend jemand eine idee ? bidde ;-)
[intern damit ich's nicht vergesse: http://www.abakus-internet-marketing.de ... html#14168 ]

Verfasst: Do 20. Nov 2003, 19:24
von Godspeed
Ich hab die .htaccess in mein Root verzeichnis kopiert und dann ging es.
hatte sie auch erst in unter verzeichnissen, aber das gab nix.

Verfasst: Do 20. Nov 2003, 22:33
von emergence
ich hab es... jetzt brauch ich mindestens 1 bier... :-)

falls es jemanden intressiert .htaccess mit rewriterules funktioniert auch in unterverzeichnissen... ohne verzeichniss angabe

meine rewriterule

Code: Alles auswählen

RewriteRule ^(.*)-content\.php index.php [PT]
kein server absturz mehr...