htaccess, alias do podstron

0

Witam, mam stronę internetową. Do poszczególnych podstron odwołuje się przez:

www.nazwa_strony.pl/index.php?zmiennia1=aa&zmienna2=bb

a chcę zeby odwoływać się do podstron tak:

www.nazwa_strony.pl/aa/bb/

Dodałem wpisy do .htaccess ale nie wiem czy są dobre ponieważ odnośniki się nie zmieniły.

Options FollowSymLinks
RewriteEngine On
RewriteRule index.html$ index.php [L]
RewriteRule ^/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?m=$1&st=$2 

Czy forma pliku jest ok?

0

sprawdz

Options FollowSymLinks
RewriteEngine On
RewriteRule index.html$ index.php [L]
RewriteRule ^/([a-zA-Z]+)/([a-zA-Z]+)$2 index.php?m=$1&st=$2 

Nie wiem czy będzie działało.

0

@bordeux

Zarówno w twoim jak i w moim przypadku jest ten sam bład:

The requested URL /aa/bb was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 
0

nie wiem czy ma być slash na początku ale zdaje się nie więc:

RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ index.php?m=$1&st=$2

@bordeux, co to za dwójka ? :|

nie wiem czy czasem nie można użyć \w [???]
wtedy by było

RewriteRule ^([\w]+)/([\w]+)$ dalszaczesc

0

@Adamo

Niestety żadna z podanych przez ciebie opcji także nie działa :(

0

Jesteś pewny, że masz mod_rewrite? Oraz czy masz pewność, że możesz korzystać z plików .htaccess? (wpis AllowOverride odpowiednio ustawiony).
Bo same warunki wyglądają poprawnie... Sprawdź jeszcze
RewriteRule ^(.+?)/(.+?)$ index.php?m=$1&st=$2

0

Gdy zmienie plik .htaccess na

Options FollowSymLinks
RewriteEngine On
RewriteRule index.html$ index.php [L]
RewriteRule ^(.+?)/(.+?)$ index.php?m=$1&st=$2 

wtedy w przeglądarce mam bład:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. 

mod_rewrite raczej jest włączony ponieważ działa pierwszy alisa. Mogę wchodzić na stronę zarówno przez www.moja_strona.pl/index.php jak i www.moja_strona.pl/index.html

0

RewriteRule ^/?([\w])/([\w])/?.* index.php?m=$1&st=$2

to wyrażenie jest nawet idiotoodporne, jak nie zadziała to mówcie mi Elmer

0

Po wpisaniu w przeglądarkę ładuje się strona ale:

  1. bez grafiki,
  2. działa tylko po wpisaniu w przeglądarce, po kliknięciu w jakikolwiek link nic się nie dzieje, linki są interpretowane po staremu

Musi być jakiś gotowy skrypt do przepisywania linków? :/

0

no to masz źle stronę napisaną
to już jest jakby była fizycznie w folderze więc linki (odwołania do grafiki itp) muszą być relatywne do webroota (znaczy w sumie nie relatywne, ale bez przesady żeby cały url wpisywać sztywno)
pewnie są takie skrypty chociaż byłyby trochę bez sensu - lepiej otwórz jakimś edytorem porządnym i zamień je ... wyrażeniami regularnymi
a zresztą można to robić ręcznie bo zazwyczaj w dynamicznych stronach to jest tylko podmiana w paru miejscach

a wyrażenia do zamiany w skryptach to prawie dokładna odwrotność, tj. z:

^/?([\w])/([\w])</span>/? na index.php?m=$1&st=$2

robisz:

index.php?m=([\w])&st=([\w])</span> na /$1/$2/

0

Ładuje bez grafiki, bo mod_rewrite przepisuje ich adresy.
Dopisz przed RewriteRule

RewriteCond %{REQUEST_FILENAME} !-s [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
0

REQUEST_FILENAME zwraca nazwe pliku czy całą sciezke? BO nawet po dodaniu tych wpisów nie ma grafiki :P

0

a) sprawdź sobie sam
b) zobacz źródło wygenerowanej strony i adresy pod którymi szuka tej grafiki a wszystko stanie się jasne

0
nav napisał(a)

Ładuje bez grafiki, bo mod_rewrite przepisuje ich adresy.
Dopisz przed RewriteRule

RewriteCond %{REQUEST_FILENAME} !-s [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]

Akurat dla -s i -d atrybut [NC] nie działa, i wali warnami

0

no i zresztą jest niepotrzebny bo jeśli plik się nazywa Plik.txt a pytamy o plik.txt to czemu miałoby nam nie pokazać odpowiedniej strony dlatego że plik o podobnej nazwie istnieje

co innego serwery windowsowe, ale tam już też nie ważny ten atrybut

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