Ausblenden von URL-key-Parameter mit .htaccess

Ich habe gesucht alle über das Internet und noch keine Lösung für dieses Problem. Ich bin der Hoffnung, Sie könnten etwas Licht auf die situation.

Habe ich meine index-Datei wie folgt eingerichtet:

<header></header>
<div id="main">
    <?php
    if(isset($_GET["p"])) $p = $_GET["p"];
    else $p = "home";

    if(file_exists("pages/{$p}.php")) include("pages/{$p}.php");
    ?>
</div>

macht mir laden meine Seiten mit einem ?p=contact href.

Sagen, ich möchte die Anzeige eines Benutzer-Profil. Ich würde dann erstellen Sie einen Unterordner in " meine "Seiten" - Ordner, so dass der relative Pfad pages/users/profile.php somit href ?p=users/profile&uid=5. Aber damit bleibt eine hässliche URL (sowie SEO-rating).

Wie würde ich umschreiben, dass die URL zu sehen wie /users/profile/5?


EDIT:
Ich habe versucht, die folgenden, was in der HTTP 500:

RewriteRule ^([^/]*)/([^/]*)$ /?p=$1&uid=$2 [L]

EDIT: Meine .htaccess-Datei liegt direkt im root-Ordner: http://pastie.org/2268239

Linie 338 ist, wo ich will, um dies zu erreichen (derzeit nur ein Kommentar).

  • Was die Apache-error log sagt zu Fehler 500 Grund?
  • Request exceeded the limit of 10 internal redirects aufgrund der zu erwartenden Konfigurations-Fehler.
  • Das bedeutet, dass die Regel (und wenn es nur ein hier; wenn mehr-dann ist Ihre Kombination) erzeugt unendliche rewrite-Zyklus, der Apache hat, gewaltsam zu brechen. Haben Sie auf Bedingung hinzufügen, dass eine Unterbrechung Zyklus (z.B. hinzufügen RewriteCond %{REQUEST_FILENAME} !-f vor die Regel-aber das ist nur eine wilde Vermutung, da ich nicht weiß, alle details). Wenn dies nicht hilft-dann empfehle ich dringend aktivieren der rewrite-debugging (RewriteLogLevel 9) und check-rewrite-log, um zu sehen, welche Regel, die es verursacht. Ansonsten bieten viel mehr details (Ihre aktuelle htaccess, wo es liegt etc).
  • Die .htaccess-Datei wird bereitgestellt von HTML5 Boilerplate mit meinem Zusatz zwischen den Zeilen 330-340. Aktualisiert die post mit pastie link.
  • Froh, dass du es gelöst hast. Bitte posten Sie Ihre Lösung als Antwort (und akzeptieren Sie es später), so dass andere Leute verweisen kann, um es (viel besser, die Frage mit nicht akzeptierten Antworten und mit zu Lesen, ganze Seite, um zu sehen, ob es gelöst wurde oder nicht). Thnx 🙂
InformationsquelleAutor zykadelic | 2011-07-20
Schreibe einen Kommentar