Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PYTANIE]Zmiana adresu na 'Stylistyczny'


Rekomendowane odpowiedzi

Opublikowano

Witam!

Co zrobić aby zamiast takiego adresu:

costam.pl/skrypt.php?a=1&b=2

Było:

costam.pl/skrypt/1/2/

Wiem że w jakimś pliku można to ustawić ale nie wiem w jakim :)

 

Proszę o pomoc!

Pozdrawiam!

 

Opublikowano

.htaccess

 

 

 

<IfModule mod_rewrite.c>

Options -MultiViews

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /skrypt.php [L]

</IfModule>
 
Opublikowano

@up Mógłbyś jaśniej? :) Bawię się w php, ale nie w jej ustawieniach

@2up

W twoim 'Skrypcie' jest moda o argumentach? Bo nic tam nie widzę... (Może na ten 'język' ślepy jestem :) )

Opublikowano

.htaccess

 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*)         index.php/$1 [L]

 

 

index.php

 

<?php 
$pathInfo = trim($_SERVER['PATH_INFO'], '/'); //usuwamy znak / z końca 
if (empty($pathInfo)) { //pusta ścieżka 
    return true; 
}     
$arr = explode('/',$pathInfo); //rozbijamy naszą ścieżkę na podstawie / 
$count = count($arr); 
                 
//pierwsze dwa elementy to moduł i akcja 
$_GET['module'] = $arr[0]; 
$_GET['action'] = isset($arr[1]) ? $arr[1] : ''; //tu małe zabezpieczenie, gdyby ktoś zapomniał podać akcji 
         
//następne elementy to nazwy parametru i parametr i tak co dwa 
for ($i=2; $i < $count;$i+=2){ 
    $_n = $arr[$i]; //nazwa parametru 
    $_v = isset($arr[$i+1]) ? $arr[$i+1] : ''; //wartość parametru 
    $_GET[$_n] = $_v; 
}?>

 

 

 

funkcja do generowania linków (zamiast ręcznego pisania)

 

<?php 
public function Url($path = null){ 
if (empty($path)) //pusta ścieżka 
    $pars = array(); 
else     
    $pars = explode('&', $path); 
$params = array(); 
foreach ($pars as $_param){ 
    $_arP = explode('=',$_param,2); //par=war dzielimy na par i war 
    $params[$_arP[0]] = isset($_arP[1]) ? $_arP[1] : ''; 
} 
$strRet = ''; 
if (!empty($params)){ 
    foreach ($params as $_key => $_val){ 
    if ($_key == 'module' || $_key == 'action') 
        $_key = ''; 
    else 
        $_key.='/'; 
    $strRet.="$_key$_val/"; 
    }     
} 
return $this->baseUrl.htmlspecialchars($strRet);     
} 
?>

 

 

 

Struktura linka to np.

 

/modul/akcja/param1/var1/param2/var2

 

wynik:

$_GET['module'] = 'modul'

$_GET['action'] = 'action'

$_GET['param1'] = 'var1'

$_GET['param2'] = 'var2'

 

Piwo się należy, najlepiej dwa

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...