Autor Zpráva
Pavel015
Profil
Dobrý den.
Mám na webu uživatele a jejich profil je možné najít na adrese www.neco.cz/index.php?&action=user&idxx=48, kde 48 představuje id uživatele.

Potřeboval bych však, aby profil bylo možné najít na adrese www.neco.cz/uzivatele/jan-novak. Nevíte, prosím, jak toho dosáhnout? Nebo aspoň ať místo jména je to ID uživatele...

Nejde mi o přesměrování, ale aby to na té adrese zůstalo a také aby pokud někdo zadá adresu www.neco.cz/index.php?&action=user&idxx=48, tak aby to přesměrovalo na tu novou.

Na internetu jsem našel tento kód:
  
Přepis z /index.php?stranka=novinky na /novinky.html
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} ^(.*).html
RewriteRule ^(.*).html index.php?stranka=$1 [nc,L,QSA]
, ale já tam to .html nechci a při umazání to nejde.
Moc prosím o pomoc.
Děkuji, krásné Vánoce všem :)!
Keeehi
Profil
Nejjednodušší bude si nechat vše vždy "přesměrovat" na index.php a tam už si potěšit vše potřebné.

RewriteRule ^(.*)$ index.php?query=$1 [nc,L,QSA]

<?php
if (isset($_GET["action"]) && $_GET["action"] === "user" && isset($_GET["idxx"])) {
    $username = getUsernameFromDbByIdxx((int)$_GET["idxx"]);
    header("Location: /uzivatele/$username");
    exit;
}

if (isset($_GET["query"])) {
    $parts = explode("/", $_GET["query"]);
    switch ($parts[0]) {
        case "uzivatele":
            echo $parts[1];
            ...
    }
}
RastyAmateur
Profil
Nebo mě ještě napadlo:

RewriteRule ^uzivatele\/([0-9]*)\/?$ index.php?action=user&idxx=$1

A v kódu se chováš, jako by to byla normálně adresa www.neco.cz/index.php?&action=user&idxx=48. Mělo by to fungovat a přijde mi to vcelku jednoduché...


Přičemž to z té staré ale nepřesměruje. Ovšem taky by to šlo...

RewriteRule ^index\.php\?action=user&idxx=([0-9]*)$ uzivatele\/$1 [R]
Keeehi
Profil
RastyAmateur:
Na apache nejsem expert, takže bych ti musel otestovat, ale domnívám se, že se to zacyklí. To přesměrování nesmí dělat apache, nebi se to musí nějak hackovat přes proměnné. Nějaká řešení jsem viděl ovšem žádné mě nikdy nenadcho.
juriad
Profil
Pavel015:
Nejjednodušší je prostě použít Diskuse JPW: Řešení některých častějších problémů (FAQ) » Univerzální obecné pravidlo a vše vyřešit v PHP, kde původní adresu dostaneš jako parametr.
RastyAmateur
Profil
Keeehi:
No na to jsem nemyslel. S .htaccess jsem poprvé pracoval asi před měsícem, možná dvěma - takže také nemám moc zkušeností... Je to možné, ale nemusí být. Já nevím, jestli ten první parametr je "obecnej" a nebo prostě URL


Chtělo by to vyzkoušet...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: