Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [htaccess] Subdomena i jej przekierowanie
Forum PHP.pl > Forum > Serwery WWW > Apache
Mike0
Dzień dobry,

Jako, że nie znalazłem w internecie nic co by mi pomogło rozwiązać swój problem, zwracam się do Was.

Potrzebuję stworzyć wpisy do htaccess, tak by:
  1. sub.domain.com wskazywała na plik /subdomena.php znajdujący się w katalogu głównym strony
  2. sub.domain.com* przekierowywała na domenę domain.com/* zachowując wszystko w miejscu * np. sub.domain.com/controller/action?aaa -> domain.com/controller/action?aaa

Uwaga: sub.domain.com i domain.com wskazują na ten sam katalog

Ja jedyne co sensownego spłodziłem w tym temacie to:
Kod
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^sub.domain.com$
    RewriteRule ^(.*)$ http://sub.domain.com/subdomena.php [L,NC,QSA]

Lecz to przekierowuje, a nie wskazuje na plik subdomena.php ....

Bardzo proszę o pomoc,
z poważaniem
Mike
trueblue
Zainteresuje się warunkiem opartym na REQUEST_URI.
Mike0
Patrzyłem na REQUEST_URI, ale to jedynie nadaje sie do warunku czy coś jest poza subdomeną tylu /index.php etc, chyba że coś pomyliłem.

Główmy problemem jest dla mnie uzyskanie 1. warunku jaki dałem czyli aby "sub.domain.com wskazywała na plik /subdomena.php znajdujący się w katalogu głównym strony" i tu proszę nadal o pomoc
Pyton_000
Kod
    RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ http://sub.domain.com/subdomena.php [L]

    RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
    RewriteCond %{REQUEST_URI} ^/(.*)$
    RewriteRule ^(.*)$ http://sub.domain.com/$1 [L]


Coś w ten deseń

Specem nie jestem.

Polecam: http://htaccess.madewithlove.be/
Mike0
@Pyton_000, dzięki za udział w dyskusji. Twój kod działa, z tym że w 1. regule dochodzi do przekierowania, a mi jednak zależy by użytkownik pozostał w sub-domenie... Do 2 reguły nie mam zastrzeżeń wink.gif

Ps. Fajna stronka do testowania wink.gif Przyda się!

--Edit:

Przeklikałem to na szybko i doszedłem do kodu:
Kod
    RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
    RewriteCond %{REQUEST_URI} ^/$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdomena.php$ [OR]
    RewriteRule ^(.*)$ /subdomena.php [L]

    RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
    RewriteCond %{REQUEST_URI} ^/(.*)$
    RewriteRule ^(.*)$ http://domain.com/$1 [L]


Wtedy nie mam przekierowania 1 pierwszym wypadku, jednak dostaję error 500 jak zakładam z powodu pętli, że odwołuje się do pliku subdomena.php który następnie odwołuje się nieskończenie sam do siebie. Jakieś pomysły?
trueblue
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI} ^(/*)$
RewriteRule ^(.*)$ http://sub.domain.com/subdomena.php [L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteRule ^(.*)$ http://domena.com/$1 [L]
Mike0
Nadal wychodzi z domeny, sub.domain.com -> domain.com/subdomain.php
sciana.gif
trueblue
Jak wygląda cały .htaccess?
Przy jakim dokładnie adresie wychodzi na pełną domenę?
Mike0
Dokładnie tak jak napisałem:

http://sub.domain.com -> http://domain.com/subdomain.php

Jeśli chodzi Ci o dokładną domenę pod którą to testuje to niestety nie mogę jej ujawnić, zresztą i tak jest zabezpieczona hasłem.

.htaccess:
Kod
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
    RewriteCond %{REQUEST_URI} ^(/*)$
    RewriteRule ^(.*)$ http://sub.domain.com/subdomain.php [L]

    RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
    RewriteCond %{REQUEST_URI} ^/(.+)$
    RewriteRule ^(.*)$ http://domain.com/$1 [L]

    RewriteRule ^page,([^-]*)-([^-]*).php$ /pages/$2 [L,R]

    RewriteRule ^user-([^-]*)$ /user/$1 [L,R=301,NC]

#CakePHP standard

    RewriteRule ^$ app/webroot/    [L]
    RewriteRule (.*) app/webroot/$1 [L]

</IfModule>
trueblue
A tak?

Kod
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI} ^(/*)$
RewriteRule ^(.*)$ http://sub.domain.com/subdomena.php [L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond %{REQUEST_URI} !^/subdomena\.php$
RewriteRule ^(.*)$ http://domena.com/$1 [L]
Mike0
arrowheadsmiley.png Teraz przekierowuje http://sub.domain.com -> http://sub.domain.com/subdomain.php, a ja jednak chciałbym ukryć /subdomain.php...

Masakra jakaś
trueblue
Kod
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI} ^(/*)$
RewriteRule ^(.*)$ http://sub.domain.com/subdomena.php [L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{THE_REQUEST} ^GET.*subdomena\.php [NC]
RewriteRule (.*?)subdomena\.php/*(.*) /$1$2 [R=301,NE,L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond %{REQUEST_URI} !^/subdomena\.php$
RewriteRule ^(.*)$ http://domena.com/$1 [L]


Mike0
Nie do końca to zadziałało, ale już jakoś sobie poradzę przy użyciu PHP, będzie łatwiej choć mniej elegancko...
Wielkie dzięki za pomoc wink.gif
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.