We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Jak zrobiŠ przyjazne linki bez modrewrite na koncie 90plan


panfor
11-04-2007, 22:45
Mam problem z ustawieniami w .htaccess tak, by skrypt o nazwie 'nazwa' otwierał się jak php. Na darmowych 60free stosowałem:

Kod:
 
ForceType application/cgi-script 
SetHandler cgi-script
...i działało bez problemu. Na 90plan wyskakuje błąd 500 Internal Server Error. Chmody plików mam takie same. Próbowałem też bezskutecznie opisywanego najczęściej w literaturze:

Kod:
  
ForceType application/x-httpd-php
lub:

Kod:
  
SetHandler application/x-httpd-php
Źródła mówią, że zależnie od wersji Apache powinno działać albo pierwsze albo drugie. Na OVH nie działa ani SetHandler ani ForceType. Przeszukałem forum ale nic oprócz przykładu .htaccess na koncie 60free nie znalazłem. Jeśli na OVH są inne ustawienia niż powszechnie się przyjęło to miło by było odnaleźć jakieś wskazówki w helpie, faq itp.

Będę wdzięczny za wskazówki, jak poradzić sobie z opisanym problemem na ovh 90plan.


No dobra. Widzę, że brak chętnych do pomocy więc przeniosę obsługę ze skryptu nazwa do index.php i zastosuję modrewrite. Nie mam żadnego w tej kwestii doświadczenia, więc bardzo proszę o potwierdzenie, czy zadziała ok.

Zadanie jest następujące:
url o strukturze costam/parametr.html lub costam/parametr
należy zamienić na index.php?zmienna=parametr
Kod:
RewriteEngine On 
RewriteRule ^costam/([^.]+)(.html)*$ /index.php?zmienna=$1
Wstępne testy wykazują, że jest mniej więcej ok.

Jest tylko jeden istotny problem: Jest ok dla głównej domeny a w przypadku poddomen nie działa (błąd 404). Zaznaczam, że poddomena wskazuje na ten sam katalog serwera co domena główna (główny katalog) więc linki
http://www.domena.com i http://pod.domena.com uruchamiają te same skrypty

Czy to jest normalne zachowanie?
Jak zmienić regułę by obejmowała również poddomeny?

Znalazłem rozwiązanie! Brakowała slasha na początku reguły. Teraz poddomeny działają prawidłowo. Ostateczna postać reguły:
Kod:
RewriteEngine On 
RewriteRule ^/costam/([^.]+)(.html)*$ /index.php?zmienna=$1
Kwestię modrewrite uważam za zamkniętą.
Ponawiam pierwsze pytanie dotyczące ForceType lub SetHandler


Pozdro!