PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RewriteRule - Browser ändert, aber inhalt nicht


$iMpLy
19.06.2015, 05:23
Hallo zusammen,

Bin gerade daran etwas aufzubauen (zu Testzwecken) und zwar möchte ich nicht, das jemand im Browser sehen kann, wie die Datei wirklich heisst und alles drumm und drann.
Aus diesem Grund, habe ich mir in der .htaccess folgendes eingetragen:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^index$ /index.php [NC,L]
</IfModule>
Sprich:
Aus http://***.****.com/index.php kann im Browser http://***.****.com/index gemacht werden.
Das würde natürlich auch funktionieren wenn es hinterher noch mit ?action=test&id=200 funktionieren.
Soweit alles gut, ich habe aber so eine Weiterleitung die aber kein Ergebnis erziehlt.
Habe schon diverses durchgelesen und ausprobiert, bin aber nicht auf die Lösung gestossen.

Folgendes:
Ich möchte das er aus support.php --> /support macht | was funktioniert
Aus support.php?action=new --> /support/new | was nicht funktioniert
Aus support.php?action=details&id=100 --> /support/details/100 | was nicht funktioniert


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^support$ /support.php [NC,L]
RewriteRule ^support/([^/]*)/([^/]*)$ /support.php?action=$1&id=$2 [NC,L]
RewriteRule ^support/([^/]*)$ /support.php?action=$1 [NC,L]
</IfModule>
und aufrufen in der PHP Datei tue ich das folgendermassen:
Die Datei support.php wird folglich aufgerufen --> /support

Die anderen anweisungen nach (mit Hilfe von: Mod Rewrite Generator by GenerateIt.net (http://www.generateit.net/mod-rewrite/index.php)) so aufgerufen:
support.php?action=new --> /support/new
support.php?action=details&id=100 --> /support/details/100

Die Adresszeile ändert sich zwar, aber der Inhalt auf der Seite bleibt immer bestehen von der eigentlichen "support.php".

Als Beispiel, folgende Anweisung funktioniert auch perfekt:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^member/([^/]*)/([^/]*)$ /profile.php?id=$1&user=$2 [NC,L]
</IfModule>
Browser ändert sich von http://***.****.com/profile.php?id=100&user=simply zu http://***.****.com/profile/100/simply
und der Inhalt wird dann auch korrekt angezeigt.

Und dann noch was anderes, wie kann ich das so machen, das nicht für jede PHP Datei eine Zeile in der .htaccess benötige?
Hat da jemand ne idee bzw. kann mir da jemand weiterhelfen?

D@rk-€vil™
19.06.2015, 21:29
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

$iMpLy
20.06.2015, 06:28
Danke dir, aber das andere funktioniert leider immer noch nicht mit der ?action=new oder ?action=details&id=100

bsp.:

<div class="col-md-12" style="text-align: center;"><a href="/support/details/1">Ticket Details</a></div>



if ($action == 'details' AND $id == intval($_GET['id'])) {
$id = intval($_GET['id']);
stdhead();
?>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="page-header"><h1>Ticket Details</h1></div>
<section class="page">

</section>
</div>
</div>
</div>
<?php
stdfoot();
}


Der Pfad im Browser wird ja geändert, aber nicht der Inhalt.
Sprich, es sieht immer noch so aus, wie wenn man nur die support.php Datei anschauen würde

tantetoni2
20.06.2015, 11:46
Setzen 6!
Lesen ---> mod_rewrite / Suchmaschinenoptimierung / .htaccess*| modrewrite.de (http://www.modrewrite.de)

$iMpLy
22.06.2015, 03:53
Setzen 6!
Lesen ---> mod_rewrite / Suchmaschinenoptimierung / .htaccess*| modrewrite.de (http://www.modrewrite.de)

habe ich auch schon gelesen...
nur löst das mein problem denoch nicht..