Jump to content
php.lv forumi

mod_rewrite un subfolders


anonīms

Recommended Posts

Ja izmantoju šo main root folderī, tad viss ir okey, bet, ja tas tiek lietotajs zem kāda subfoldera, pieņemsim web2, tad sākas problēmas

Tātad

RewriteEngine on
RewriteRule ^([a-zA-Z_]+)/([a-zA-Z_]+)?$ index.php?lang=$1&page=$2 [L]
RewriteRule ^([a-zA-Z_]+)?$ index.php?lang=$1 [L]

root/web2/htaccess

root/web2/index.php

Viss iet caur index.php failu. Tikko kā iemetu šo htaaccess failu tā izmet 500 erroru.

 

 

Hm, a varbūt nav enaiblots mod_rewrite/htaccess. pačekošu vēl šo variantu. P.S. localhosts

 

EDIT: nebija enaiblots. Tagad ir. Būs bump, ja būs nepieciešama palīdzība.

Edited by anonīms
Link to comment
Share on other sites

BUMP. Tātad ir linki web1/lv

web1/lv/about_us

web1/lv/what_we_do/job1

 

Jautājums par style.css atrašanās vietu. Ja būtu main rootā, tad nebūtu problēmas ar /style.css, bet ko darīt šajā gadījumā? ../style.css arī nepalīdzēs, jo ir nenoteikts /a/b/c skaits.

Link to comment
Share on other sites

Ir linki

web1/lv/about_us

web1/lv/what_we_do/job1

Pie language change nepieciešams kaut kā šo lv aizvietot ar citu, teiksim en. - kā to panākt?

 

Mana ideja ir tāda, ka vajag kkā atdalīt ar $_SERVER variabļiem visu.

$_SERVER['HTTP_HOST'], tad kkā vajag dabūt šo web1 atseviški (ar php_self vai request_uri savāks visu)

Jūsu varianti?

EDIT: Varbūt kkā ar argv?

Edited by anonīms
Link to comment
Share on other sites

Esmu izdomājis kā

preg_replace.

//lv

$str = preg_replace('//', '', $str, 2);

kkas noteikti nav pareizi ar pirmo daļu repleicā. Kur kļūda? Mēģināju gan ar 1,gan 2,gan 3 /.

 

ar 1

arning: preg_replace() [function.preg-replace]: No ending delimiter '/' index.php on line 15
Edited by anonīms
Link to comment
Share on other sites

nu ir tā, ka vajag paņemt esošo kodu (kur var būt gan vēl $page, $subpage un citi brīnumi) un tā linka valodas stringu aizvietot ar citu. Kā to visērtāk varētu panākt? Man bija doma sadalīt to visu. Tādēļ arī nepieciešams noņemt //. Atkal pievienot host_name, tad valodas stringu un tad jau tālāk esošo,bijušo urlu

Link to comment
Share on other sites

Nu kaut kā tomēr panācu savu.

vienīgi dīvaini kādēļ nestrādāja return $NL;

function changeLang($host,$uri,$new_language)
{
global $folder;
$str = preg_replace($folder, '', $uri);
$str = trim($str,"/");
$lang = substr($str, 0, 2);
$next_url = substr($str, 2, 100);
$NL = 'http://'.$host.$folder.$new_language.$next_url;
echo $NL;
return;
}

Link to comment
Share on other sites

  • 2 months later...

Lai neveidotu jaunu topiku, uzjautāšu tepat.

 

Radusies problēmiņa, kurai nevaru atrast vienkāršu risinājumu.

Mēģinu uzrakstīt RewriteRule, lai vienai lapai strādātu arī iepriekš noindeksētie linki.

Visu mazliet sarežģī, ka "lapa" atrodas iekš direktorijas. Ja tā nebūtu, tad pēc idejas vajadzētu nostrādāt šādam, aiz kura būtu visi pārējie esošās lapas RewriteRule. Nevaru izdomāt, kā request_uri "sadalīt gabalos".

 

RewriteCond %{REQUEST_URI} (.*)
RewriteCond %1 !yyy/zzz/* [NC]
RewriteRule .? http://lapa.lv/yyy/zzz%1 [NC,L,R=301]

 

Varbūt kāds var pasviest kādu ideju? Viens no variantiem būtu uzrakstīt vecās rules pa jaunam (izlabot, lai strādātu, un piemest klāt esošajam .htaccess faila saturam). Bet negribās ticēt, ka nav labāks/īsāks risinājums :>

 

Iepriekš lapai linki bija

lapa.lv/direktorija/jaunumi/id/123/zinjas-nosaukums

lapa.lv/direktorija/arhivs/lpp/1

lapa.lv/direktorija/qwerty/rtyu/123/aa

lapa.lv/direktorija/asdf/adsdfdg/

un vēl citi pēc līdzīga principa. Kopīgā daļa visiem ir lapa.lv/direktorija/

 

Tagad:

lapa.lv/direktorija/yyy/zzz/jaunumi/id/123/zinas-nosaukums

lapa.lv/direktorija/yyy/zzz/arhivs/lpp/1

lapa.lv/direktorija/yyy/zzz/qwerty/rtyu/123/aa

lapa.lv/direktorija/yyy/zzz/asdf/adsdfdg/

Edited by Val
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...