Jump to content
php.lv forumi

ar htaccess pārrakstīt linku uz citu


No0ne

Recommended Posts

Nepieciešams linku formā: http://lapa.lv/skripts.php?mainigais=zzzzzzzzzzzz pārrakstīt uz http://lapa.lv:777/zzzzzzzzzzzzzz/mainigais .

 

Jau 2 dienas mocos pa naktīm, tā arī nevaru īsti izprast. Ja pareizi sapratu, tad ? nedrīkst atrasties tajā linkā, bet kā to noeskeipot man nav ne jausmas.

 

Piebilde: Es vēlos izdarīt tā, lai nesmukais links, pārvērstos par smuko linku, taču smuko linku neviens vairāk par serveri neredzēs <-- īsāk: pretēji tam, kam parasti izmanto .htaccess!

 

Paldies!

Link to comment
Share on other sites

Eksperimentē. Uztaisi vienkāršu, kas iet, un kabini pamazām klāt visu pārējo.

Iepēti, ko sevī ietver (.*). Man liekās, ka Delfina variants nestrādā, jo tur ir (.*), kā rezultātā pirmais paņem visu, kas ir aiz '?'.

RewriteRule ^skripts.php\?([a-z0-9-]+)$ index.php?first=$1 [QSA,L]
RewriteRule ^skripts.php\?([a-z0-9-]+)=([a-z0-9-]+)$ http://lapa.lv:777/$2/$1 [QSA,L]

Link to comment
Share on other sites

Visu, ko varēju iedomāties, jau izmēģināju. Patiesībā man nepieciešams tikai 1 mainīgais, manā piemērā tas bija dots kā zzzzzzzzzzzz.

 

Izmēģināju arī aikss variantus, nekādu panākumu. Ja nu kādam ir kāds brīvāks brīdis, varbūt var uzlikt uz localhosta un notestēt kādu no tiem rewrite ruliem un iepostot šeit pārbaudītu!

Link to comment
Share on other sites

Izmeklējos internetā un šo to uzgāju (fantomaster).

Testējot urlis ir "http://localhost/scripts.php?first=firstvalue", rāda "The requested URL /firstvalue/first was not found on this server."

 

RewriteCond %{QUERY_STRING} ^([a-zA-Z0-9-]+)=([a-zA-Z0-9-]+)$
RewriteRule ^scripts\.php$ http://localhost/%2/%1? [L]

Edited by Aikss
Link to comment
Share on other sites

RewriteCond %{QUERY_STRING} ^briinums=([a-zA-Z0-9-]+)$
RewriteRule ^skripts\.php$ http://www.lapa.lv:2710/%1/briinums/? [L]

 

Viss strādā ļoti jauki:

 

www.lapa.lv/skripts.php?briinums=lalalalalala

 

tik tiešām pārveidojas par

 

www.lapa.lv:2710/lalalalalala/briinums

 

Tomēr sanāk, ka skripts.php ielādē lapu nevis kā jauno URL, bet vienkārši pārmet uz jauno URL. Tātad ieejot www.lapa.lv/skripts.php?briinums=lalalalalala , kad lapa ir ielādējusies browseris rāda adresi www.lapa.lv:2710/lalalalalala/briinums .

Būtībā tas pats kas ar header() sanāk.

 

Man visu padarīšanu sarežģī tas, ka piekļuve šim skriptam darbojas caur programmām, kuras neatbalsta šo redirektu. Ielādējot skripts.php?lalalalala programma cer pretī sagaidīt informāciju teiksim tekstu: viss okei, bet, ja pretī saņem redirektu uz citu skriptu, tad izmet erroru.

 

Programmas pašas mainīt nevaru, zinu, ka ir iespējams to izdarīt, varbūt ne caur .htaccess, bet esmu redzējis mājas lapas, kuru koderi ir pārveidojuši visu vajadzīgajā formā, man, diemžēl, palīdzēt viņi nevēlējās.

Link to comment
Share on other sites

Protokols taisa redirectu. Nav ne jausmas, kā tev būs ar portu. Kam tev vispār to smuko urli, ko neviens neredzēs? Iespējams, ka jāmeklē, kas nopietnāks šim.

Smuko URLi prasa C++ skripts, kuru palaiž atsevišķi no web servera.

Apdomājos un sapratu, ka nekas nesanāks, jo redirekts būs jebkurā gadījumā, jo man nepieciešams cits ports un to var ielādēt tikai redirektējot.. Paldies par palīdzību!

Link to comment
Share on other sites

pamēģini ar R flagu..

'redirect|R [=code]' (force redirect)

Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redirection.

 

Pamēģināju, kā jau teikts dokumentācijā tas taisa external redirektu, tātad dara to pašu, ko header().

 

Šaubos vai var vispār šo panākt, jo tas, kas man ir vajadzīgs ir kas līdzīgs CNAME, ejot vienā adresē gribu, lai ielādē citu, lietotājam to nemanot. Manā gadījumā tas vairs nav skripts, ko padod apache, bet cita, nesaistīta adrese (dēļ porta) un tas ir kas līdzīgs, ja es gribētu, lai, ieejot http://lapa.lv/draugiem.php, ielādētos draugiem.lv.

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...