/ / Przepisywanie adresu URL CI - php, codeigniter, przepisywanie adresu URL, przepisywanie

Przepisywanie adresu URL CI - php, codeigniter, przepisywanie adresu URL, przepisywanie

Nigdy wcześniej nie przepisałem adresu URL opróczusuwając część index.php z instalacji CodeIgniter, i robię to za pomocą wklejonego fragmentu w moim pliku .htaccess. Nie miałem czasu, aby dowiedzieć się, co robi fragment kodu; jestem w zasadzie bardzo nowy w przepisywaniu adresów URL.

Mam mobilną wersję mojej aplikacji internetowej. Dotarłem do przekierowania użytkowników mobilnych do subdomeny: m.myhost.tld. Ponieważ jednak używam (jednego) CodeIgniter (instaluj), muszę wysłać tych użytkowników mobilnych do kontrolera specyficznego dla urządzeń mobilnych, w moim przypadku /mobile/. Tak więc kontroler zawsze pojawia się na pasku adresu.

Po prostu nie sądzę, że to jest bardzo czyste i szukam sposobu na przepisanie adresu URL; ale prawdę mówiąc, nie jestem nawet pewien, czy jest to możliwe ... stąd moje pytanie. Chcę się tego pozbyć /mobile część kontrolera. czy to możliwe?

Kilka przykładów:

Mój obecny folder „root” na komórki to

http://m.myhost.tld/mobile

Chciałbym przekształcić ten w

http://m.myhost.tld/

W tej chwili, kiedy idę do http://m.myhost.tld/, przekierowuje do domyślnego kontrolera mojej aplikacji CodeIgniter, która jest częścią „internetowej” wersji aplikacji internetowej.

Inny przykład:

Obrócenie

http://m.myhost.tld/mobile#mobile/about

w

http://m.myhost.tld/#mobile/about

Nie jestem pewien, czy mam tu sens. Jestem w głowie, ale jak powiedziałem, nie wiem co dokładnie jest możliwe. Jeśli użytkownik jest włączony m subdomena, chcę ukryć /mobile część moich adresów URL. Jednak tylko wtedy, gdy jesteśmy w trybie m subdomena, czyli wersja „stacjonarna” (która znajduje się w www ) w ogóle się nie dotyka.

Jak powiedziałem już kilka razy, nie jestem pewienco jest możliwe i to, czego szukam, może być po prostu zbyt skomplikowane lub co tam. Uznałem, że zapytam, ponieważ nauka poprzez pytanie jest tym, co robię najlepiej. Proszę, nie bądź dla mnie zbyt trudny, jeśli okaże się, że to jest głupie pytanie, panowie profesjonaliści;)

EDYTOWAĆ: Myślałem, że mogę edytować, ponieważ nie chcę źle się spisać. Niekoniecznie szukam dokładnych odpowiedzi na moje pytanie. Z zadowoleniem przyjmuję również dokumentację / samouczki / artykuły, które mogą poprowadzić mnie do rozwiązania. Jeśli uda mi się znaleźć własne rozwiązanie, oczywiście wiele się nauczę więcej.

Wielkie dzięki.

Odpowiedzi:

2 dla odpowiedzi № 1

To może być zbyt proste rozwiązanie, ale dlaczego nie w konfiguracji routingu zrobić coś tak prostego jak

w swojej konfiguracji zrób coś takiego

if ($_SERVER["SERVER_NAME"] == "m.myhost.tld")
$route["default_controller"] = "mobile";

To sprawi, że domyślny kontroler mobil nie będzie musiał mieć / mobile ...

Jak powiedziałem, może zbyt proste


0 dla odpowiedzi nr 2

EDYCJA: Nie działa, ale może ktoś może to zmienić w coś, co działa

Spróbuj tego:

RewriteCond $1!^mobile/
RewriteCond %{HTTP_HOST} ^m.myhost.tld
RewriteRule (.*) /mobile/$1 [L]