Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewrite] 2 reguły dzialają 3 nie, a całkiem podobna, I pytanie odnoście konfiguracji mod_rewrite
MiFlo
post 16.10.2009, 22:32:20
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 4
Dołączył: 12.09.2006
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Witam, męcze się już z tym pare godzn nad problem regułek oto zawartość .htaccess

Kod
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]*)$ index.php?module=$1 [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?module=$1&plugin=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([*])$ index.php?module=$1&plugin=$2&id=$3 [L]



Po wpisaniu adresu www.NazwaStrony.pl/Coś strona ładnie się pokazuje i działa tak jak należy ($_GET['module'] == 'Coś')
Po wpisaniu adresu www.NazwaStrony.pl/Coś/Coś2 strona ładnie się pokazuje i działa tak jak należy ($_GET['module'] == 'Coś' && $_GET['plugin'] == 'Coś2')

Natomiast przy wpisaniu adresu www.NazwaStrony.pl/Coś/Coś2/Coś3 apache wyświetla nam 404 dodam że również z ostatnią regułką wyglądającą w ten sposób:
Kod
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?module=$1&plugin=$2&id=$3 [L]
dzieje się to samo ( Error 404 )

Co z tym fantem zrobić?

Pytanie 2:
Czy zasadniczo mod_rewrite ma prawo dzialac inaczej (te same regulki) na rożnych serwerach? U mnie na Linuxowym apache (Localhost) nie działają kompletnie, jeżeli wyśle je na dedyka równiez z linuxowym apache dzialają jak należy (Oczywiście poza tą 3 regułką)

Z góry bardzo dziękuje za pomoc, pozdrawiam MiFlo
Go to the top of the page
+Quote Post
sf
post 17.10.2009, 09:09:11
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Kod
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ test.php?module=$1&plugin=$2&id=$3 [L]


To działa na pewno, ctrl + f5 wciskaj bo często cachuje przy takich przekierowaniach, można też to zrobić np. tak:

Kod
RewriteRule ^([^/]*)/([^/]*)/(.*)$ test.php?module=$1&plugin=$2&id=$3 [L]


Co do pytanie drugiego to trzeba ustawić RewriteBase by lokalnie dobrze działało, czasem i na serwerach trzeba go użyć.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
MiFlo
post 17.10.2009, 18:23:12
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 4
Dołączył: 12.09.2006
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Z RewriteBase kombinowałem podawałem scieżkę bezwzględną do katalogu z plikami ( /home/user/public_html/nazwa ) jednak nic to nie zmienia.

Co do samej reguły fakt działa lecz jak ona jest nie dzie mi się dostać do plików które są w katalogu od głównego... (chodzi dokladnie o styl css, ale i wiele innych ważnych plików tracimy dostęp) pokazuje się strona zamiast pliku mimo że na początku .haccessa jest napisane że jeżeli pliki istnieje to ma wskazać na niego...

Edit:
Z ustawieniem RewriteBase na poprawne (w .htaccess) dalej dzieje się to dosamo bląd 404 a log z apacha wygląda następująco:
Kod
[Sat Oct 17 19:26:12 2009] [error] [client 127.0.0.1] File does not exist: /srv/www/htdocs/home, referer: http://127.0.0.1/~MiFlo/strona/

Czyli mimo ustawienia RewriteBase w .htaccess, jest ono ignorowane i zapisane w jakimś pliku konfiguracyjnym i ustawione na katalog /srv/www/htdocs, przynajmniej tak mi się wydaje

Edit2:
Ustawilem w pliku konfuguracyjnym apache2 żeby wskazyład na dobry katalog mimo to dalej jest 404 po na stronie nie ma katalogu home, czyli tak jakby regułka nie działała ale rewrite działa bo sam mi wywala błąd że nie może znaleśc tego katalogu....

Ten post edytował MiFlo 17.10.2009, 18:44:55
Go to the top of the page
+Quote Post
sf
post 17.10.2009, 18:48:42
Post #4





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


RewriteBase /~MiFlo/strona/

z tego co widzę to tak powinien wyglądać

U mnie nie ma problemu z dostępem do plików *.css, *.img. Wszystko działa ok z kodem, który Ci podałem.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
MiFlo
post 17.10.2009, 22:17:57
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 4
Dołączył: 12.09.2006
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


RewriteBase które podałeś rozwiązało pytanie 2, wielkie dzięki jednak po dodaniu:
Kod
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?module=$1&plugin=$2&id=$3 [L]
na lokalnym serwerze jak i na dedyku dzieje się to samo, brak dostępu do plików ;/

Edit:
Rozwiązalem problem:
Kod
RewriteRule ^([^/]*)/([^/]*)/([^.]*)$ index.php?module=$1&plugin=$2&id=$3 [L]

Wielkie dzięki za pomoc!

Ten post edytował MiFlo 17.10.2009, 22:20:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:17