konfiguracja mod_rewrite

0

Witam serdecznie,
Mam taki skrypt w mod_rewrite:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ domena.pl [nc]
RewriteRule ^(.*)$ http://domena.pl/$1 [r=301,nc]
RewriteRule (.*)\.html index.php?query=$1 [L,QSA]

i linki w formie: domena.pl/jakas_nazwa_123/cos_33122.html
Po wejściu na linka przekierowuje mnie na:
http://www.domena.pl/index.php?query=http://www.domena.pl/jakas_nazwa_123/cos_33122.html&&modrw&

Wie ktoś może jak to naprawić?

0
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ domena.pl [nc]
RewriteRule ^(.*)$ http://domena.pl/$1 [r=301,nc]
RewriteRule ^[^\.]*$ index.php?query=$1 [L,QSA]

Może tak

0

Podstawowe pytanie brzmi: co chcesz uzyskać jako query? Czy ma to być string w postaci "jakas_nazwa_123/cos_33122"? Czy może raczej same ID (123,33122)? Czy jeszcze coś innego?

[Adam]

0

potrzebuję te całe nazwy:
jakas_nazwa_123 i cos_33122

0
CeKa napisał(a):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ domena.pl [nc]
RewriteRule ^(.*)$ http://domena.pl/$1 [r=301,nc]
RewriteRule ^[^\.]*$ index.php?query=$1 [L,QSA]

Może tak

mam 500 Internal Server Error

0

Wklep mi skrypt PHP w którym masz linie $_GET['zmienna'] którą tworzysz podstrony

0
 
$webid = null;
$webid = array_merge(explode('-', $_GET['query']), $_GET);


if($webid['1'] == "nazwa"){
      require_once("menu.php");
}
0
Northwest napisał(a):
 
$webid = null;
$webid = array_merge(explode('-', $_GET['query']), $_GET);


if($webid['1'] == "nazwa"){
      require_once("menu.php");
}

hmm używasz jednej zmiennej globalnej a chcesz uzyskać dwa parametry filtrowania URL twojastrona.pl/cos/cos

RewriteRule ^index/([^-]+)/([^-]+)/([^-]+)/$ http://twojastrona.pl/index.php?query=$1&queryId2=$2 [L]

Jeżeli chciałbyś uzyskać taki efekt jak powyżej pisałeś musiałbyś zrobić tak, ale jednocześnie przerobić zawratość skryptu wtedy uzyskasz coś takiego.

/query/queryId2/ 
czyli<code class="php"> http://twojastrona.pl/costam/costam2/  
  znak dolara $1 , $2  itd rozdziela Ci te zmienne czyli stawia znak " **/** "
0

zrobiłem tak jak sugerowałeś:

 RewriteEngine On
RewriteCond %{HTTP_HOST} ^ domena.pl [nc]
RewriteRule ^(.*)$ http://domena.pl/$1 [r=301,nc]
RewriteRule ^[^\.]*$ index.php?query=$1 [L,QSA]
RewriteRule ^index/([^-]+)/([^-]+)/([^-]+)/$ http://twojastrona.pl/index.php?query=$1&queryId2=$2 [L]

ale wywala mi error 500 :(

0

Błąd może być spowodowany przez spację w drugiej linii za znakiem ^.

[Adam]

0

w dalszym ciągu error 500

0

w dalszym ciągu error 500

error nr 500 wypluwa w momencie błędów w kodzie , może to też dotyczyć tzw białych znaków czy kodowania czasem np kiedy człowiek
wklepuje kod do notatnika i ustawia np sesje przez session_start a nie będzie ten łańcuch widniał na szczycie notatnika w pierwszej linii tylko drugiej wtedy przed nagłówkiem mogą pojawić się białe śmieci, jest to czasem powiązane z formatowaniem tekstu.
zapisuj w formacie UNICODE i popraw wszystkie literówki , staraj się myśleć usuwaj np jedną linie i zapisuj by sprawdzić czy dalej generuje błąd w tego będziesz wiedział metodą prób i błędów w której linii jest jakiś błąd natury strukturalnej

1 użytkowników online, w tym zalogowanych: 0, gości: 1