Jump to content
php.lv forumi

RewriteRule


Recommended Posts

Pašlaik gatavojos veidot jaunu lapu izmantojot mod_rewrite. Man vajadzētu mazliet palīdzību ar RewriteRule. Vai var uzrkastīt tādu universālu? domain.lv/module/var1/var2/var3 un lai cik man vajadzētu izmantot mainīgos , tik arī viņi galā kabinātos klāt un ja modulis vai neviens mainīgais nav, tad attiecīgi viņi arī nerādās.

 

Man sanāk pagaidām tā, ka es uzrakstu RewriteRule prieksh domain.lv/module/var, tad arii, ja es adresee noraadu tikai domain.lv/module man met "Not Found". Respektīvi, ja es priekš šādas struktūras uzrakstu RewriteRule, tad man arī vienmēr jābūt tiem pašiem parametriem arī padotiem, kā viens mazāk, tā "Not Found".

Ceru, ka mani sapratāt un varēsiet man palīdzēt.

 

UPDATE:

Domāju, domāju un izdomāju, ka man tagad katram iespējamajam variantam ir jāraksta savs RewriteRule?

index.php?module=xxx uz to un to

index.php?module=xxx&a=xxx tas un tas, un taa taalaak, ja?

 

UPDATE Nr2:

Atradu forumā iz Rozes sacītā:

Es tavā vietā iesākumā ieliktu šādu ruli:

 

RewriteEngine On

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

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?dir=$1 [QSA,L]Un tad attiecīgi 'dir' mainīgo explodēt pa '/' un sadalīt pa mainīgajiem ($lang, $page, $subpage) un veikt analīzi jau php galā.

 

Šitais būtu pareizāk par to pirmo variantu, kad katram iespējamajam variantam rakstīt savu Rule?

Edited by Kristabs
Link to comment
Share on other sites

es visu `drazu` uzticu PHP, rewrite tikai nodod to drazu..

 

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?$1 [QSA]

 

Tādējādi es kombinēju:

- locale

- module

- action

- mainīgos

 

[/locale][/module][/action][/parms1]..[/parmN]

 

PS: notiek čekošana, bet nav nekas drausmīgs, ja viss ir piemamots Array-os un failos, nevis jāselektē DB..

 

$items = explode( '/', $request );
$i = 0;
$p = $items[$i];
if (!empty($LOCALES[$p]))
{
$CUR_LOCALE  = $p;
} else {
$CUR_LOCALE  = $DEFAULT_LOCALE;
	$i++;
}

$p = $items[$i];
if (!empty($MODULES[$p]))
{
 $CUR_MODULE = $MODULES[$p];
	$i++;
} else {
 $CUR_MODULE = $DEFQAULT_MODULE;
	 $p1 = $
}

$p = $items[$i];
...
// action init, kas var būt vai nu fails, vai klases f-ja (ja OOP pieeja)

 

tādējādi tu PRE_loadē settingus tekošajam pieprasījumam (kods ir pavisam īss, lai uztrauktos par perfomance)

Edited by Delfins
Link to comment
Share on other sites

×
×
  • Create New...