mod_rewrite - problem z dwukropkiem

Odpowiedz Nowy wątek
2006-08-02 01:03
0

Witam,

Zacząłem się bawić z mod_rewrite i w sumie wszystko mi wychodzi oprócz jednej rzeczy, mianowicie: podając taki adres:
http://localhost/User:abcd

apache wywołuje błąd 403, nijak nie mogę dopuścić znaku dwukropka do skryptu php (może system myśli że po nim jest oznaczenie portu, choć nie ma)
Jak to jest zrobione na 4p - nie chodzi mi o .htaccess, gdyż mam bardzo podobny ten plik (jeżeli patrzeć na RewriteCond i RewriteRule) i to (raczej) nie tam tkwi błąd.

Drugim problemem jest to że podając taki adres:
<code class="html4strict">http://localhost/user

php ładuje mi plik user.php5, pomimo że nie dałem żadnego rozszerzenia - jak to wyłączyć?

//edit
Dobra, drugi problem rozwiązałem przez
Options -MultiViews

Pozdrawiam
prgTW

Pozostało 580 znaków

2006-08-02 11:06
0

Zobacz pliki .htaccess z coyote, tam taki mechanizm działa..


<url>http://kooba.pl/</url>

Pozostało 580 znaków

2006-08-02 11:47
0

no przecież napisał że ma prawie identycznie jak w Coyote ... dwukropek ogólnie nie powinien być w adresie więc powinno być http://localhost/User%3Aabcd ale to w każdej przeglądarce ci nie działa czy tylko w jednej ? spróbuj podpiąć domenkę pod localhost (w hosts) i czy zadziała przez www.prgtw.net/User:abcd

a działa ci w ogóle mod_rewrite ?


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-02 20:27
0
  • mod_rewrite działa
  • system linków tak jak na 4p (/Delphi/FAQ/ itp.) zrobiłem już wcześniej
  • linki z dwukropkiem (nieważne czy zapisanym w postaci : lub hex %3A) wywołują błąd 403 forbidden (You don't have permission to access /user:prgTW on this server) nieważne czy pod Firefox'em czy pod IE, czyli to kwestia apache'a

Edytowałem plik HOSTS do wyglądu:

127.0.0.1 localhost
127.0.0.1 prgTW.net
127.0.0.1 prgTW //nawet tak zrobiłem i też nic


i ani poprze localhost ani prgTW.net nie mogę się dostać na stronę dopisując User:prgTW

Aha: Mój Apache to 1.3.33 (serwer: Krasnal 2.7)

Pozostało 580 znaków

2006-08-02 23:19
0

a daj tą regułkę na wszelki wypadek, a jak w mod_rewrite użyjesz %3A ?


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-02 23:44
0

... jaką regułkę, wszystkie które wcześniej napisałem juz mam zaaplikowane.

a jak mam użyć w mod_rewrite %3A, napisać nową regułkę w .htaccess (jak tak to jaką)?

//dodane:
Nie działają też linki:
User>prgTW
User<prgTW
User%prgTW
itp.

Przez niektóre znaki od razu serwer blokuje dostęp, zanim tekst dojdzie do mojego skryptu error.php5 (jak text.php w coyote

Pozostało 580 znaków

2006-08-03 10:48
0
prgtw napisał(a)

... jaką regułkę, wszystkie które wcześniej napisałem juz mam zaaplikowane.

no mówiłem żebyś pokazał je tutaj ale już nie ważne

zobacz jeszcze czy ci działa
http://localhost/nieistniejacyfolder/User:ktos
i czy ci nie działa
http://localhost/istniejacyfolder/User:ktos

bo u mnie tak jest jak teraz sprawdziłem, tj. mimo mod_rewrite, Apache najpierw próbuje znaleźć plik /folder i jeśli folder "folder" istnieje no to próbuje sprawdzić czy jest plik "User:ktos" i wtedy w logach mam Filename is not valid: c:/www/folder/fsdfsdf:fdsgfd no bo w Windowsie nie może być taka nazwa pliku i Apache przerywa działanie ... nie wiem jak zrobić żeby miał priorytet mod_rewrite nad innym, może przesunąć ten moduł trochę wyżej w konfiguracji Apache - tam pisze że kolejność ma znaczenie i bez wiedzy co się robi tego nie zmieniać czyli można spróbować


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-03 15:37
0

Faktycznie, jest tak jak napisałeś:

http://localhost/files/User:ktos
"files" istnieje
Apache wywala 403

http://localhost/User:ktos
root-folder istnieje
Także 403

http://localhost/abcd/User:ktos
"abcd" nie istnieje
Apache normalnie przekierowuje

Mój plik .htaccess:

Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On

php_flag register_globals off
php_flag magic_quotes_gpc on
php_flag short_open_tag off
php_flag session.auto_start off
php_flag session.use_trans_sid off

#IndexIgnore po to gdyby włączyć +Indexes w podfolderze
IndexIgnore _* cron_* cgi-bin
DirectoryIndex index.php5

ErrorDocument 403 /error.php5?error=403
ErrorDocument 404 /error.php5?error=404

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-s [NC]
RewriteRule ^(.*)$ error.php5?error=$1 [NC,L]

Jeszcze pokombinuje, zobaczę, ale jakbyś na coś wpadł to napisz proszę, ja też zobaczę i w razie czego napiszę potomnym jakbym do czegoś doszedł.
Dzięki jeszcze raz.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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