Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mod_rewrite
Forum PHP.pl > Forum > PHP
kipero
Witam.
Chcę na jednym serwerze zamieścić cztery rożne strony na dwóch CMSach. Chciałbym po wejściu na stronę:
Kod
http://www.strona.pl/strona/login/docelowy_plik.php

wczytać lokalizację tego CMSa z bazy danych.
Gdybym wiedział, że będzie to:
Kod
http://www.strona.pl/strona.php?id=login

to wpisałbym tak:
Kod
RewriteEngine On
RewriteRule strona/([a-zA-Z]+) /strona.php?id=$1

Problem, w tym, ze ścieżka do skryptu będzie zmienna. Jak rozwiązać ten problem i wczytać potrzebne informacje z bazy danych? Może da się to jakoś zrobić w pliku .htaccess?
cadavre
Jeśli argument "login" chcesz przekazać do docelowy_plik to tak:
Kod
RewriteRule strona/([a-zA-Z]+)/login/(.+\..+) /$2?login=$1
kipero
Może trochę źle wytłumaczyłem.
Chodzi mi o to, ze po wejściu na stronę
http://www.strona.pl/marek
skrypt pobierze z bazy danych informacje o katalogu, do którego ma przekierować.
Oto przykładowa tabela:
Kod
id | login | folder
-------------------------------
1  | marek | joomla
2  | piotr | phpnuke

Po pobraniu danych user zostaje przekierowany do strony:
http://www.strona.pl/joomla
ale adres w przeglądarce pozostaje taki sam.
Da się to zrobić? Nie chcę używac funkcji header() ani ramek bo będzie widać ścieżkę docelową, a tego chcę uniknąć.
cadavre
Jeśli adres na pasku ma pozostać to fizycznie jedynie ramką - to najprostsze rozwiązanie. Możesz stworzyć też plik (kontroler), który odczyta z bazy jakiego CMSa użyć i załaduje go np. CURLem(?).
Turgon
Nie warto ;] ... Lepiej dodawać do .htaccess dodatkowe pozycje smile.gif
kipero
Może tak, ale przy 200 cmsach rozmiary pliku .htaccess mogą być bardzo duże. Nie zwiększy to w znaczącym stopniu czasu ładowania stron?
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.