Warum registrieren? Nur als registriertes Mitglied vom ABAKUS Forum hast Du vollen Zugriff auf alle Funktionen unserer Website.

Hilferuf an die Spezis ... rewrite Grundlagenwissen?

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Mr.Classic
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 27.09.2017, 21:05

Beitrag von Mr.Classic » 27.09.2017, 21:10

Hallo an alle,
habe schon zig Foren-Artikel durchgestöbert und irgendwelche Beschreibungen gelesen. Oftmals verwirrter als zuvor ... daher mein Hilferuf an die Spezis.

Folgende "Aufgabenstellung"

https://test.meinedomain.de/verzeichnis/begriff

soll durch das script /verzeichnis/index.php?par=begriff

ausgeführt werden. Ich muss die entsprechende .htaccess im Verzeichnis "/verzeichnis" unterbringen.

Alle möglichen Variationen bereits getestet.

RewriteEngine On
RewriteBase /

RewriteRule ^/verzeichnis/(.*)?$ /verzeichnis/index.php?par=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule .* %{REQUEST_URI}.php [L]

Im übergeordneten Verzeichnis läuft eine Standard-htaccess von Wordpess und bewirkt dasss bei Aufruf mitgeteilt wird, dass die Seite nicht gefunden werden konnte.
https://test.meinedomain.de/verzeichnis/ ... ar=begriff funktioniert problemlos bei direktem Aufruf.

Irgendwie drehe ich mich seit Tagen im Kreis und bitte um einen freundlichen Hinweis. Vielen Dank im Voraus!

elmex
PostRank 9
PostRank 9
Beiträge: 1032
Registriert: 03.05.2005, 10:09

Beitrag von elmex » 28.09.2017, 09:09

RewriteBase /verzeichnis/

Sollte dort rein.

Ggf. musst du noch die Wordpress .htaccess anapassen mit was in der Art

RewriteCond %{REQUEST_FILENAME} ! ^verzeichnis

Mr.Classic
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 27.09.2017, 21:05

Beitrag von Mr.Classic » 28.09.2017, 10:35

Super ... das war der entscheidende Hinweis - so funktionierts:

RewriteEngine On
RewriteBase /verzeichnis/

RewriteRule ^(.*)?$ index.php?par=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule .* %{REQUEST_URI}.php [L]

etwas nicht mehr stimmt ... so wird die Umsetzung /verzeichnis/file zu /verzeichnis/file.php nicht mehr realisiert, sondern der Aufruf erfolgt dennoch über die index.php, obwohl die file.php im Verzeichnis vorhanden ist ... wo ist mein gedanklicher Fehler?
Nochmals im Voraus vielen Dank

elmex
PostRank 9
PostRank 9
Beiträge: 1032
Registriert: 03.05.2005, 10:09

Beitrag von elmex » 28.09.2017, 12:55

Zu dem zweiten Fehler:

Die Reihenfolge ist so, dass es zu alles auf die index.php leitet, das stört da sicher schon mal. probiere mal das:

RewriteEngine On
RewriteBase /verzeichnis/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* %{REQUEST_URI}.php [L]

RewriteRule ^(.*)?$ index.php?par=$1 [L]

Und dann hast im oberen Block immer REQUEST_FILENAME genommen, danach aber REQUEST_URI? Ich würde die letzte dann besser auch mit REQUEST_FILENAME machen:

RewriteRule .* %{REQUEST_FILENAME}.php [L]

Mr.Classic
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 27.09.2017, 21:05

Beitrag von Mr.Classic » 28.09.2017, 20:21

Erst mal vielen Dank für die Antwort ...
scheinbar hatte ich heute Vormittag nicht alles komplett getestet, oder es befanden sich noch Inhalte im Cache.

Folgender Inhalt ist nun in der .htaccess (diesmal mit den originalen Verzeichnisnamen etc.) Das sollte ja jetzt Deinem Vorschlag entsprechen?

RewriteEngine On
RewriteBase /lzformx/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* %{REQUEST_FILENAME}.php [L]

RewriteRule ^(.*)?$ index.php?project_site=$1 [L]

ErrorDocument 404 /
ErrorDocument 500 /

Jetzt ist es ganz verrückt. Also eine /lzformx/test (die test.php) ist vorhanden -> wird nicht ersetzt.Sondern zu index.php?project_site=test

Edit: Gleichfalls wird auch eine direkt adressierte test.php nicht mehr direkt aufgerufen, sondern es erfolgt ebenfalls eine Ersetzung. Auch sämtliche Calls der in den weiteren Unterverzeichnissen liegenden Dateien erfolgt nicht, sondern die Ersetzung. Wenigstens das hatte mit meiner ersten Zwischenvariante funktioniert, obwohl Deine Erläuterungen logisch und nachvollziehbar sind.

Bei einer anderen Installation (ohne Wordpress) passiert das gleiche.

Nochmals Danke für Deine Hilfe!
Peat

Antworten