![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 15.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Moim celem jest umożliwienie skryptom pobieranie informacji o języku w jakim użytkownik chce wyświetlić stronę oraz oczywiście o bieżącej lokalizacji. Przykładowe wywołania witryny: strona.pl strona.pl/jakas_strona strona.pl/konto/logowanie en.strona.pl en.strona.pl/jakas_strona en.strona.pl/konto/logowanie Wszystkie dane trafiają do pliku index.php jako $_GET['_url'] i $_GET['_lang'] Oto kawałek kodu mod_rewrite jaki wyskrobałem: Kod RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^(([a-z]{2})\.|)(.+)$ [NC] RewriteRule ^(.*)$ index.php?_url=$1&_lang=%2 [NC,L] Niestety powyższy kod działa jedynie w wybranych przypadkach. Działa gdy podana jest jakaś wartość dla _url (czyli np. strona.pl/cos_tam_cos lub en.strona.pl/cos_tam_cos), wówczas wyświetla (jeśli podano) _lang i _url Natomiast gdy wywołam stronę główną (np. strona.pl lub en.strona.pl), żaden z parametrów nie jest przekazywany do skryptu Proszę o pomoc. Jak zmienić mój kod, by działał w każdym przypadku? Pozdrawiam Michał |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Poszukaj chociażby tutaj na forum o "wildcard", bo dynamiczne subdomeny to nie tylko htaccess, ale również ustawienia mx domeny.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 15.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Edit 2
Problem rozwiązany. Dla potomnych: Kod RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^(([a-z]{2})\.|)(.+)$ [NC] RewriteRule ^(.*)$ index.php?_url=$1&_lang=%2 [NC,L] RewriteCond %{HTTP_REFERER} ^$ [NC] RewriteCond %{HTTP_HOST} ^(([a-z]{2})\.|)(.+)$ [NC] RewriteRule ^$ index.php?_url=index&_lang=%2 [NC,L] Edit 1 Dodam jeszcze informacje z print_r($_GET); otrzymywane w różnych sytuacjach: strona.pl Array ( ) en.strona.pl Array ( ) strona.pl/cos_tam_cos Array ( [_url] => cos_tam_cos [_lang] => ) en.strona.pl/my_page Array ( [_url] => my_page [_lang] => en ) Edit 0 Wildcard jest włączony. Zresztą w przypadku wywołania strony en.strona.pl/cos_tam_cos wszystko działa idealnie, problem zaczyna się, gdy wywołuję en.strona.pl (czyli bez wskazania lokalizacji), co jednoznacznie wskazuje na błąd w wyrażeniu regularnym. Próbowałem już na wiele sposobów, posiłkując się artykułami i postami z sieci, jednak nic nie pomogło. Ten post edytował michal1239 16.10.2011, 10:13:26 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 06:13 |