kkuubbaa88
26.06.2008, 15:12:16
mam napisane wyrazenie
RewriteRule ^aktywacja/([0-9a-zA-Z_-]+)/([0-9a-zA-Z]+)$ aktywacja.php?login=$1&id=$2
wpisuje www.strona.pl/aktywacja/sdfsfs/sdfdfgersfsdfs i na local dziala, a gdy juz wzuce na serwer i wpisze to samo to nie zczytuje mi zmiennych... dlaczego ?
natomiast po wpisaniu www.strona.pl/aktywacja.php?login=sdffss&id=dfgdfgfdfgf to wtedy odczyta mi zmienne... co jest nie tak ?
MMX3
26.06.2008, 15:18:22
po 1. to nie w php tylko w dziale o apache.
po 2. może zapomniało się o RewriteBase?
kkuubbaa88
26.06.2008, 15:49:07
dobrze tylko jak tego uzyc?
na serwerze mam katalog www a w nim kilka folderow... w kazdym inna strona... kazda strona ma swoja domene... domeny sa przekierowywane na adres ip serwera, a ten juz sam rozdziela do odpowiednich folderow za pomoca subdomen i multidomen... co ja mam teraz wpisac w tym RewriteBase bo probuje wszystkiego i cos nie chce wyjsc...
matx132
26.06.2008, 17:59:10
zobacz czy serwer ma właczone rewrite
kkuubbaa88
26.06.2008, 18:15:40
gdy robie to u siebie na kompie na localhoscie dziala bez problemu... ale gdy juz przeniose na serwer www to niestety nie chce chodzic...
wiem, ze plik htaccess dziala, bo przy dodaniu
RewriteRule ^old\.html$ new.html
dziala bez problemu... przenosi mnie na strone... tak wiec co sie dzieje ?
webdice
26.06.2008, 18:36:55
Spróbuj tak:
Kod
RewriteRule ^aktywacja/([^/]+)/([^/]+)$ aktywacja.php?login=$1&id=$2 [L]
a poza tym napisałbym czy objawia się to "nie działanie".
kkuubbaa88
26.06.2008, 19:21:00
tak wiec to rozwiazanie tez nie pomoglo... objawia sie to tym, ze:
w pliku aktywacja sprawdzam na samym poczatku czy istnieja zmienne:
<?php
cos sie dzieje } else {
}
?>
i gdy wywoluje sobie strone www.strona.pl/aktywacja/sdf33sd/sdfsf34sdfsdf34 to pisze mi ciagle, ze jest brak danych...
natomiast gdy wpisze sobie www.strona.pl/aktywacja.php?login=dfgfs3sdf&id=dfgdfgsf23dfdsf to bez problemu wykonuje sie caly skrypt...
Nie jestem pewien ale spróbuj:
Kod
RewriteEngine on
RewriteRule ^aktywacja/([0-9a-zA-Z\_\-]+)/([0-9a-zA-Z]+)$ aktywacja.php?login=$1&id=$2 [L]
Nie zapomnij zostawić przejścia do nowej linii na końcu, na wszelki wypadek.
Id jest liczbą? Wtedy wystarczy:
Kod
RewriteEngine on
RewriteRule ^aktywacja/([0-9a-zA-Z\_\-]+)/([0-9]+)$ aktywacja.php?login=$1&id=$2 [L]
Błąd może też leżeć w tym, że adresujesz do aktywacja.php względnie i może po prostu przy przepisywaniu, serwer szuka tego pliku nie w tym katalogu co trzeba.
Musisz dodać, zaraz pod RewriteEngine on:
Kod
RewriteBase ścieżka
gdzie ścieżka to ścieżka do katalogu w którym jest aktywacja.php.
Więcej:
http://httpd.apache.org/docs/1.3/mod/mod_r...tml#RewriteBaseEw dodaj w sekcji head, pod np title:
<base href="http://o2.pl/" />
W href właśnie ścieżkę do katalogu z aktywacja.php, ale lepiej przez RewriteBase
wipo
26.06.2008, 20:13:22
Na poczatek to zobacz czy w pliku konfiguracyjnym apache masz włączony odczyt .htaccess z różnych katalogów.
Dla przykładu wpisz na początku Deny from all i zobacz czy strona się wyświetli
kkuubbaa88
26.06.2008, 20:34:34
wszystko ladnie, ale tak jak mowilem mi ten plik znajduje po wpisaniu www.strona.pl/aktywacja/sdfsdfsfd/sdfsfsdfsdfd bo pisze mi z warunku, ze nie mozna znalesc danych... wiec chyba ze sciezka pliku jest wszystko dobrze... problem raczej siedzi po tym, ze nie chce mi zmiennych odczytac z tej ladnej postaci... czy moze sie myle ?
wipo
26.06.2008, 20:38:44
a spróbuj w index.php na początku dać
<?php
?>
kkuubbaa88
26.06.2008, 20:53:07
jak na razie to mam sam plik aktywacji wiec tam moge dodac...
wipo
26.06.2008, 20:55:29
Teraz to ja nie rozumiem. Najpierw mówisz ze nie działa a potem że masz sam plik aktywacji. Co ma jedno do drugiego
kkuubbaa88
26.06.2008, 20:58:49
no i wszylo, ze przy tym adresowaniu www.strona.pl/aktywacja/sdfsdfw324/sdfsfw42342344234 nie sa przesylane zadne zmienne, bo tablica byla pusta
natomiast przy www.strona.pl/aktywacja.php?login=sdf234df&id=sdfdsfsdfds343434 pokazaly sie dwie zmienne...
teraz pytanie dlaczego nie przesylaja sie zmienne ?
obecnie moj htaccess wyglada:
RewriteEngine on
RewriteRule ^aktywacja/([^/]+)/([^/]+)$ aktywacja.php?login=$1&id=$2 [L]
wipo
26.06.2008, 21:07:33
A spróbuj bez [L] na koncu
kkuubbaa88
26.06.2008, 21:29:50
brak [L] rowniez nie zalatwia problemu... juz normalnie nie wiem co jeszcze moze byc nie tak...
robos85
26.06.2008, 21:38:08
Kod
RewriteBase ścieżka
dodałeś?
kkuubbaa88
26.06.2008, 21:43:25
no nie dodalem, bo plik mi znajduje... a chyba o to chodzi... a jesli mam dodac to co za sciezke tam wpisac?
robos85
26.06.2008, 21:50:12
Zrobiłem na szybko u mnie na localu test i mam takie pliki:
index.php
<?php
if ($_GET['a'] && $_GET['b']) {
echo $_GET['a'].$_GET['b']; }
?>
.htaccess
Kod
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index/([0-9]+)/([0-9]+)$ index.php?a=$1&b=$2 [L]
wpisuje sobie jako link:
http://localhost/testy/rewrite/index/123/123 - i działa
Pliki mam w katalogu /testy/rewrite/ jak coś
kkuubbaa88
26.06.2008, 22:02:07
chcialbym tylko zauwazyc, ze to co ja mam teraz sam obecnie rowniez dziala mi na localu bez problemu...

ale juz po wzuceniu na serwer nijak nie chce chodzic... i to nawet nie wiem czemu...
robos85
26.06.2008, 22:22:13
kkuubbaa88
26.06.2008, 22:43:50
nie wiem co to za linki, ale w pierwszym pisze mi tylko "Wartosc a"
a w drugim mam blad 404, ze nie ma pliku... wiec chyba nie bardzo dziala...
robos85
26.06.2008, 22:46:36
poprawiłem linki.
Chciałem tym pokazać, że podany wcześniej kod działa mi na 2ch serwerach. Za 1 możesz podstawić 1,2 lub 3.
Więc możliwe że po prostu masz coś nie tak z serwerem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.