Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]ModRewrite .htacces
Forum PHP.pl > Forum > Przedszkole
KrzysiekKCN
Witam, od kilku dni próbuje zrobić przyjazne linki (nigdy w życiu tego nie robiłem). Dodam że mam serwer na OVH co utrudnia mi życie.
i jeżeli mam już stronę która np. wyświetla artykuły:
Kod
domena.net.pl/?site=articles&id=14&page=3

a chciał bym zmienić ją na:
Kod
domena.net.pl/artykul-14/strona-3/


no i nic mi nie działa, jak widać poniżej na najniższym poziomie:
Mój htaccess:
Kod
SetEnv PHP_VER 5_TEST
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9_-]+) index.php?site=$1 [L]


Przeszukałem internet i to forum i znalazłem kilka skryptów. Co niektóre wyłączały mi style.css lub dostępy do plików swf na stronie.
W niektórych skryptach pomogła ta oto strona: OWN PAGE (z tymi stylami, bo linków i tak nie zmienia).

Jednak na OVH nic nie dało rady, co więcej z TEJ strony również nie pomogło.
Kolejnym linkiem z którego kody nie reagują to: rewriteguide.html

Czy ktoś jest w stanie mi pomóc?
I czy jeżeli ta strona działa to po zmianach z linku:
Kod
domena.net.pl/artykul-14/strona-3/

$_GET['articles'] nadaj będzie równy 14? Czy trzeba zmodyfikować stronę?


Pozdrawiam i czekam na odpowiedź.




morbic
Spróbuj tego:

Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^artykul\-([0-9]+)/strona\-([0-9]+) index.php?site=articles&id=$1&page=$2 [L]
RewriteRule ^artykul\-([0-9]+) index.php?site=articles&id=$1&page=1 [L]


Powinno zadziałać zarówno dla http://domena.net.pl/artykul-14/ jak i http://domena.net.pl/artykul-14/strona-3/

Zmienne w PHP będą dostępne bez zmian.
KrzysiekKCN
No niestety nie reaguje nic.
Mam prośbę, żebyśmy zaczynali od 1 zmiennej. tongue.gif chciał bym to też zrozumieć bo jak na razie to tylko mi nerwy zjada.

domena.com/?sites=articles/
domena.com/articles/


znalazłem na forum też taki skrypt, co sądzisz czy to będzie lepsze rozwiązanie?
nospor
morbic
Zgubiłem się już co chcesz zrobić.

Podajesz link index.php?site=articles&id=14&page=3 . Kilka linijek niżej piszesz o $_GET['articles'] , a teraz podajesz link http://domena.pl/articles/

Co dokładnie chcesz osiągnąć? Jak dokładnie wygląda link przed przepisaniem i jak ma wyglądać po? Bo się gubię businesssmiley.png

// EDIT:
Rozwiązanie z linku też jest warte uwagi, ale wymaga już większej ingerencji w serwis niż tylko .htaccess
KrzysiekKCN
Chce zrobić ładne linki.
Nie ważne z jakich parametrów czy ?body ?sites? &articles &id itp.
I wiem że jest dużo poradników na ten temat, ale mój serwer na OVH (premium) odrzuca wszystko, dlatego też chciałem zaczynać od samego początku na np. 1 paramter.

Bo na niektórych podstronach mam 1 na niektórych 2 a czasami do 5.

No ale nie mam pojęcia jak to zrobić na OVH.

Hmmm właśnie odkryłem że te wszystkie kombinacje z htaccess Modwrite dodają mi do linku ten toporny PHPSESSID. Oczywiście bez tego już to znika.
morbic
Dziwne.

A spróbuj:
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule artykul\-([0-9]+) index.php?site=articles&id=$1&page=1 [L]


OVH w tym pakiecie ma na pewno obsługę .htaccess.

Link http://domena.pl/artykul-14 powinien działać.
KrzysiekKCN
Wow, działa.

Tylko że na stronie adresy są nadal takie same.
Jak ręcznie wpisze np. /artykul-30/ to działa.
morbic
Na stronie nie zmienisz adresów używając .htaccess .

Za pomocą tego pliku możesz przepisać wymyślony adres wpisywany w przeglądarce na inny, odpowiedni. Ale żeby sama strona generowała takie linki - to już musisz zrobić sam w swoim skrypcie - w miejscach w kodzie, gdzie te linki tworzysz.

Link do przykładu wkleiłeś sam w jednym z postów wyżej - to kompleksowe rozwiązanie, które powinno zdziałać to, co chcesz.
KrzysiekKCN
Czyli że jak już mam te wymyślone linki to teraz całą stronę trzeba przerobić?
--
A jeszcze jedno:
chciał bym link:
Kod
artykul/30/glos-1/komentarz-24

z:
Kod
blog.php?body=artykul&id=30&vote=1&cmnt=24


i zrobiłem regułę:
Kod
RewriteRule artykul\/([^-]+)\/glos\-([^-]+)\/komentarz\-([^-]+) /blog.php?body=artykul&id=$1&vote=$2&cmnt=$3 [L]


ale no niestety nie dodaje mi głosów. A jak przejdę na ten adres z normalnego linku to wszystko działa:
morbic
Kod
RewriteRule artykul/([0-9]+)/glos/([0-9]+)/komentarz/([0-9]+) blog.php?body=artykul&id=$1&vote=$2&cmnt=$3 [L]


Niestety trzeba przerabiać stronę i wszystkie linki.
KrzysiekKCN
NO to twoje też nie działa. Po prostu głosy nie reagują.
/artykul/30/glos/1/komentarz/24

a link mam:
<li><a href='artykul/".$id."/glos/1/komentarz/".$wiersz1["id"]."' title='1/5' class='one-star'>1</a></li>
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.