htaccess - Как да пренапиша адресът

cHuBakA

Registered
Привет.

В момента адресите са ми следните

Apache config:
sait.com/direktoria/index.php?id=1&ime=nomer

Как може да станат

Apache config:
sait.com/direktoria/1/ime/nomer

Като
"direktoria" - да бъде всякакви букви и/или числа
"1" - да бъде всякакви букви и/или числа
"ime" - да бъде всякакви букви и/или числа
"nomer" - да бъде всякакви букви и/или числа

Или с две думи
да се махне - index.php?id=
да се заменят & , = с наклонена черта /
а другите да бъдат всякакви букви и/или числа

Опитвам следното, но нещо не се получава
Apache config:
RewriteRule ^([a-zA-Z0-9]+)/([^\.]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$     $1/index.php?id=$2&$3=$4 [NC,L]
 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1 [L]

Но за индекса, виж този тул ще ти свърши ли работа:

 
Благодаря. Пробвах генератора, но там става само за статични адреси.
А нали идеята е за динамични?
Опитах и твоя вариант с RewriteCond F и D . И RewriteRule с L. Обаче пак не става. Не знам защо

п.п RewriteRule (.*) /index.php/$1 [L] - само за проба на индекса - РАБОТИ
Обаче целия динамичен адрес не
 
Не съм напълно сигурен, че името на get параметъра може да е динамично ( в случая ime ).

По-скоро линка трябва да ти бъде нещо от сорта на следния, за да стане всичко динамично.

sait.com/direktoria/index.php?id=1&n=ime&v=nomer

И съответно:

Код:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /direktoria/index.php?id=$1&n=$2&v=$3 [L]
 
Аз не виждам логика в това директорията да е динамична. Така написано изглежда, че без значение името на директорията, то тя ще трябва да съществува и в нея да има index.php файл, който съответно да прихване query стринга.

Какво де факто се опитваш да постигнеш? Ако искаш да извлечеш нещо от дадена директория, то тогава прихващането на името на директорията също трябва да се подаде като параметър на index.php и да си направиш логиката вътрешно.
 

Back
Горе