Skriptsprachen (PHP, Javascript, etc.) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.

Diskutieren Sie hier über die serverseitige Skriptsprachen PHP und Python und über dynamische Webseitenerstellung mit Javascript und Ajax.


Dennis Schöpfer
Beiträge: 67

PN schreiben
Profil ansehen
User ist offline

[mod_rewrite] Pfad doppelt?

Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Dennis Schöpfer Dennis Schöpfer, am Saturday den 24.09.2011 um 23:00:16

Hallo zusammen,

ich hab gerade auf benutzerfreundliche URLs umgestellt und nun hab ich das Phänomen, das irgendwie die Pfade doppelt im Browser angegeben werden.

mod_rewrite:

 
Text
1
2
3
4
RewriteEngine On

RewriteRule ^([^/\.]+)/?$ index.php?module=$1 [L]
RewriteRule ^references/([^/\.]+)/?$ index.php?module=references&category=$1 [L]

Wenn ich die Seite aufrufe, läuft soweit alles wie es soll bis, ich ein zweites mal irgendwo hin navigieren möchte. Dann kommt nämlich folgendes:

Im Quelltext steht aber eindeutig <a href="references">...
Also nur einmal. Nun ist es egal, welchen Menüpunkt ich ansteuern will, er baut das automatisch nun immer so references/contact, oder references/blog, also stellt immer das references davor.

Was da los? :)

Danke & Gruss


Dennis Schöpfer
Beiträge: 67

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Dennis Schöpfer Dennis Schöpfer, am Sunday den 25.09.2011 um 17:23:00

Ist zwar keine Lösung des Problems, aber ich habe das jetzt erstmal so gelöst, indem ich vor jeden Link :

 
PHP
1
<?php echo constant("BASEPATH"); ?>

Mich würde trotzdem noch interessieren warum er das macht.

Gruss
Dennis

Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Jannik Zschiesche Jannik Zschiesche, am Tuesday den 27.09.2011 um 17:54:19

Du scheinst relative Pfade zu verwenden.

Diese stacken natürlich hoch, wenn man auf einen (virtuellen) Unterordner wieder einen relativen Link darauf setzt.

Lösung: einfach immer absolute URLs verwenden.


Dennis Schöpfer
Beiträge: 67

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Dennis Schöpfer Dennis Schöpfer, am Thursday den 29.09.2011 um 07:08:38

Jap, genauso hab ich das dann ja auch gemacht, indem ich in eine Constante einfach den absoluten Pfad eingegeben habe und das dann vor die Links gesetzt habe.

Das selbe hatte ich ja mit dem CSS und bin da erst nicht drüber gestolpert, das es ja das selbe Problem ist.

Aber alles gut jetzt, danke! ;)


Dennis Schöpfer
Beiträge: 67

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Dennis Schöpfer Dennis Schöpfer, am Tuesday den 28.02.2012 um 18:04:31

Hallo zusammen,

ich muss das Thema leider nochmal ausgraben ;)
Da ich in den letzten Monaten wenig Zeit hatte, komme ich erst jetzt wieder dazu, ein wenig an meiner Seite zu bauen.

Und nun stosse ich durch Zufall gleich auf das nächste Problem an der Geschichte...

Ich hatte in der Zwischenzeit eine Constante mit dem Namen BASEPATH definiert, welche ich dann überall in meinen Scripten hart gecodet hatte.
Das sah dann so aus:

 
PHP
1
define("BASEPATH", "http://localhost:PORT/dsportfolio/");

Klappte soweit auch wunderbar, bis ich jetzt anfing mich an den PHP Teil zu wagen.
Da ich in der Zwischenzeit auch ein Systemwechsel zu OSX gemacht habe und Zeitgleich einen neunen Server aufgesetzt habe, kommt jetzt das eigentliche Problem: allow_url_include
Seines Zeichens auf OFF gestellt, was ja auch wegen der Sicherheit ok ist ABER, wie löse ich mein Problem?

Das gibt mit nämlich immer den schönen Fehler:
Warning: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0 in ...

Folgenden Lösungsweg hab ich schon gefunden:

 
PHP
1
define("BASEPATH", "".$_SERVER['HTTP_HOST']."/dsportfolio/");

Jetzt kommt bei, z.B. einen Bild folgende URL dabei raus: "localhost:PORT/dsportfolio/images/image.jpg" ... das geht schonmal nicht, DENN ... das http:// fehlt. Wenn ich das irgendwo vorschreibe geht es.

Nun meine Frage, wie bekomme ich das hin? Ohne das ich jetzt überall http:// vorschreiben und wenn ich die Seite online stelle alles wieder wegnehmen muss?

Hoffentlich war das nicht zu verwirrend ;)

Gruss
Dennis

Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Jannik Zschiesche Jannik Zschiesche, am Thursday den 01.03.2012 um 20:11:42

Wo genau inkludierst du etwas mit dem BASEPATH?


Dennis Schöpfer
Beiträge: 67

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Dennis Schöpfer Dennis Schöpfer, am Friday den 02.03.2012 um 19:14:48

Die Constante bzw. die Abfrage liegt in der index.php und alle Bilder, CSS Dateien und PHP Seiten laufen da durch. So sehen meine Links alle folgendermaßen aus:

CSS:
background-image : url("<?php echo constant("BASEPATH"); ?>images/layout/logo.jpg");

PHP Dateien in Ordnern:
require(''.BASEPATH.'/config.php');

Wenn ich deine Frage jetzt richtig verstanden habe :)


Benutzer gelöscht
Beiträge: 166

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Benutzer gelöscht Benutzer gelöscht, am Friday den 02.03.2012 um 21:13:41
Zitat von: Dennis Schöpfer

Die Constante bzw. die Abfrage liegt in der index.php und alle Bilder, CSS Dateien und PHP Seiten laufen da durch. So sehen meine Links alle folgendermaßen aus:

CSS:
background-image : url("<?php echo constant("BASEPATH"); ?>images/layout/logo.jpg");

PHP Dateien in Ordnern:
require(''.BASEPATH.'/config.php');

Du würfelst da Zugriffe auf HTTP- und auf Dateisystem-Basis durcheinander. Das sind zwei paar Stiefel, du brauchst zwei Konstanten: eine für Pfade z.B. zu Hintergrundbildern und einen zu Dateien im Dateisystem (z.B. zur config.php).

Außerdem: warum schreibst du echo constant("BASEPATH"); und nicht einfach echo BASEPATH;?


Dennis Schöpfer
Beiträge: 67

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "[mod_rewrite] Pfad doppelt?" von Dennis Schöpfer Dennis Schöpfer, am Friday den 02.03.2012 um 21:57:42

Jep, das habe ich auch schon rausgefunden, durch Zufall wie ich zugeben musste.
Ich hab den Fehler mittlerweile ausgemerzt. Ich bin da ein wenig durcheinander gekommen.

Zu der Schreibweise, siehe das falsch gesetzte BASEPATH bei dem require von mir, ich hab das schon für mich enteckt, das ich das kürzer schreiben kann, aber noch nicht überall geändert ;)
Hab ich verinnerlicht und wird nun umgesetzt.

Danke dir!