Frage

Ich habe eine dynamische Seite namens show.php. Die Seite ist dynamisch und die URL kann entweder sein show.php?name=john-doe oder show.php?category=student.

Ich versuche, eine Umschreibung zu erstellen, die die URL in die URL verwandelt /show/john-doe.html für Namen oder /show/student.html Für Kategorie.

Das habe ich bisher in meinem .htaccess.

RewriteRule ^show/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/([^/]*)\.html$ show.php?category=$1 [L]

Derzeit funktioniert nur die Namensregel, die Kategorieregel jedoch nicht. Was ist los?

War es hilfreich?

Lösung

Das Problem ist, dass Sie alle Shows/xxx.html an dieselbe URL (die erste) senden. Da beide Umschreibregeln genau denselben Parameter verwenden, funktioniert nur der erste.

Sie könnten dies auf zwei verschiedene Arten lösen.

Entweder verwenden Sie show.php? Id = xxx und akzeptieren sowohl Namen als auch Kategorie in Ihrem PHP und vermitteln dort, welche Seite zu zeigen ist.

Oder Sie verwenden zwei verschiedene Arten von URLs in Ihrem Umschreiben, um Show/Kategorie/student.html und show/student/John-doe.html wie SO zu erhalten:

RewriteRule ^show/student/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/category/([^/]*)\.html$ show.php?category=$1 [L]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top