Jump to content
php.lv forumi

Url Rewrite


Ugga

Recommended Posts

Khm khm.

Sveiki.

 

Ir tāds joks kā url-rewrite.

Pēc visiem manuāļiem nesapratu kā iekš .htaccess dabūt kautko tik vienkāršu kā man vajag.

 

Ideja tāda:

 

Šādas adresēs vietā: localhost/mape/?mainigais=bla

dabūt šādu: localhost/mape/bla

 

kaa mainās ideja ja uzrodas 2,3 mainīgie?

 

Cik es pēc piemēriem mēģināju izdarīt man sanāca vainu apache, 403,404 errori, vai nu āri browsers nesaprot.

 

Help

Link to comment
Share on other sites

Precizējot jautājumu:

 

Ideja tāda:

Šādas adresēs vietā: localhost/mape/?mainigais=bla
dabūt šādu: localhost/mape/bla

 

Vai nav pieciešams otrādi? no localhost/mape/bla patiesībā dabūt localhost/mape/?mainigais=bla ?

Proti direktorijai/failam 'bla' nemaz neeksistējot..

 

Jo pēc šīs atbildes mainās uz jautājumu sniedzamā atbilde, proti ja tu tiešām burtiski saprot to kā tu jautā tad risinājums ir

<? header('Location: localhost/mape/'.$_GET['mainigais']); ?>

 

Ja ir variants par to kaa no smukaa URL (kas patiesiibaa neeksistee) dabuut laukaa to ko lietotaajs ir atveeris tad .htaccesaa jaaliek:

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /mape/?mainigais=$1 [QSA,L]

 

 

opcionāli (vēlams) var piekarināt vēl vienu RewriteCond

RewriteCond %{REQUEST_URI} !\.(css|js|jpg|gif|jpeg)

 

t.i. šis url-rewrite nestrādās tad ja tiks vērti attēli u.c. faili kuri neeksitē uz servera

Link to comment
Share on other sites

Jā, tieši tā:

Vai nav pieciešams otrādi? no localhost/mape/bla patiesībā dabūt localhost/mape/?mainigais=bla ?
Proti direktorijai/failam 'bla' nemaz neeksistējot..

 

Bet Bet.

 

es ieliku šo .htaccess tajā mapē un ierakstīju urli mape/123, bet man viņš izmet :

 

Forbidden

You don't have permission to access /mape/123 on this server.

 

Ko es daru ne tā?

Link to comment
Share on other sites

1) error logā tagad nekā jauna nav

2) rewrite ir aktivizēts

3) allow override all < šādi

4) mape 123 neeksistē

 

Visā webā ir tikai 2 .htaccess faili.Viens ir šajā mapē un otrs ir pavisam citā subdirā, kur nevar būt saistība.

Bija visādi varianti izmēģināti. Bū. Manuprāt .htaccess kautkā trūkst

 

P.S. Iekš httpd.conf man ir defaultā parametri visam webam

Options Indexes Includes
AllowOverride All
Allow from all

Link to comment
Share on other sites

pamēģini šādi tad:

 

/mape/

/mape/index.php

/mape/.htacces

 

Iekš .htaccess ir

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !\.(css|js|jpg|gif|jpeg)

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

 

 

ieksh index.php ir <? echo $_GET['dir']; ?>

 

buutu jaastraadaa..

 

 

Ak jā vēl ir jautājums pat PHP versiju.. nav 4.4.1? jo tam ir bugs http://bugs.php.net/bug.php?id=35059

Link to comment
Share on other sites

Uzliku 4.4.2.

 

Phē.

 

!)Ja httpd.conf uzliek AllowOverride All:

Forbidden

You don't have permission to access /mape/blablabla on this server.

 

 

2)Ja uzliek AllowOverride None:

Not Found

The requested URL /mape/blablabla was not found on this server.

 

Un index.php viņš man pirmajā variantā arī neļauj atvērt. httpd.conf kaut kas ne tā?

Link to comment
Share on other sites

Nu visdrīzāk nekorekta konfigurācija līdz ar to problēma nepāstāv pēc idejas, bet gan tu to esi radījis pats.

 

Paskaties acces un error logā tur ir jābūt iemeslam kapēc apache aizliedz un atgriež 403 erroru.. Ja tu saki ka nekā logā nav tad vai nu tev viņš ir atslēgts, vai neparizā vietā skaties, vai ieliec lielāku LogLevel

Link to comment
Share on other sites

×
×
  • Create New...