Jump to content
php.lv forumi

URL pārrakstīšana


Narix

Recommended Posts

Zinu, ka 100x apspriests.

Problēma nav nekāda dižā, runa iet par htaccess, līdz šim esmu darbojies ar htaccess diezgan primitīvā līmenī pārrakstot statiskas lapas.

Šoreiz ir tā, ka vajag pārrakstīt dinamiskus URL.

Anyway url ir šādi:

http://www.domain.com/?l=lv&s=home
vai
http://www.domain.com/?l=ru&s=prepare&c=2

Mainīgie ir visi trīs, kuri tiek iegūti, kā jau noprotat izmantojot $_GET.

 

Ideju ko vēlo iegūt cerams arī sapratāt, smth like:

http://www.domain.com/ru/prepare/2/

 

Varbūt kādam ir aizķēries kāds labs piemērs tieši šai situācijai? :)

 

Paldies.

Link to comment
Share on other sites

Es piemēram izmantoju .htaccess šādu:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

 

Un apstrāju:

 

$page = explode("/",$_GET['q']);

 

piem: http://www.domain.com/ru/prepare/2/

 

$page[0]=ru
$page[1]=prepare
$page[2]=2

Edited by zintis8789
Link to comment
Share on other sites

Paldies.

Un jautājums kā pareizi php failā inklūdot css un js lai izmantojot htaccess tie tiktu atrasti???

Izmantojot $_SERVER['HTTP_HOST'] ? Jeb ir kāds racionālāks veids?

 

Savādāk uztaisot simple nosacījumu lai tiek pārrakstīta valoda, piem, http://www.domain.com/lv/ - tiek pazaudētas visas bildes, css un js...

Edited by Narix
Link to comment
Share on other sites

Es izmantoju:

http://". $_SERVER['SERVER_NAME']."/js/blabla.js"

 

Ja es saprotu pareizi tad tas it jākabina visur kodā ja izmanto mod_rewrite?

Nu piemēram ja man bija kodā:

<a href=''><img id='slide-img-1' src='./images/slide_1.jpg' class='slide' alt='' /></a>

Tad tagad ir jāraksta

$base="http://". $_SERVER['SERVER_NAME'].";
<a href=''><img id='slide-img-1' src='<php $base; ?>/images/slide_1.jpg' class='slide' alt='' /></a>

 

????

Edited by Narix
Link to comment
Share on other sites

Jā, jo pēc būtības $_SERVER['SERVER_NAME'] izvada tavu linku.

Šausmīgais darbs tādā veidā. Ir varbūt citi risinājumi?

 

Vēl jautājums -

RewriteRule ^([^_]*)\/$ /index.php?l=$1 [QSA]

 

Izmantojot šo netiek ielādēti css un js faili, bet a atkla izmantojot šo -

RewriteRule ^([^_]*)\.html$ /index.php?l=$1 [QSA]

css un js tiek ielādēti korekti. Kur atšķirība? Kapēc tā? Tam .html aliasam tik liela nozīme?

Link to comment
Share on other sites

Nejauc divas dažādas lietas.

 



Options +FollowSymLinks

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

 

$get = explode("/", $_GET['page']);

 

Lai korekti pievienotu CSS/JS utml. failus definē aboslūtu adresi, un vadies pēc šīs adreses jebkurām bildēm, css, js utt failiem.

Link to comment
Share on other sites

Vispār korektu ceļu tēma te arī tikusi apspriesta vairākkārt. Ja tev katrai aplikācijai ir savs domains, tad nekādu problēmu, visur priekšā met slashu. Problēma sākas tajā brīdī, kad aplikācijas ir sadalītas pa mapēm ( domain.tld/app1, domain.tld/app2, etc ). Lielākajā daļā freimworku šī lieta tiek risināta ar funkcijas palīdzību, kurai padod absolūtu ceļu no aplikācijas root'a un funkcija prependo pārējo. Piemēram:

<?
echo l0lz('folder/file.ext'); // /app1/folder/file.ext
?>

Link to comment
Share on other sites

  • 2 weeks later...

Varbūt kāda no šīm rindām tev der?!

 

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?$1=$2
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?$1=$2

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?$1=$2&$3
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?$1=$2&$3

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?$1=$2&$3=$s4
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?$1=$2&$3=$s4

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...