Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowanie htacces
Forum PHP.pl > Forum > Serwery WWW
tarzinio
Witam serdecznie.

Może na wstępie napiszę co chce osiągnąć i co mam aktualnie.

Mam stronkę gdzie sam panel admina mam w osobnym katalogu /admin/

Mam zrobiony routing odpowiednio dla strona.pl/cokolwiek oraz dla moja-strona.com.pl/admin/cokolwiek/.

W htacces mam napisane



Options FollowSymLinks
php_flag session.use_trans_sid off
RewriteEngine On
DirectoryIndex index.php

#php_value memory_limit 12M

Options FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.moja-strona.com.pl$
RewriteRule ^(.*)$ http://moja-strona.com.pl/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.moja-strona.com.pl?([a-zA-Z0-9])$
RewriteRule ^(.*)$ http://moja-strona.com.pl/$1 [R=301,L]


RewriteRule ^index\.html$ index.php[NC]


#przekierowanie wszystkiego na index. Działa gdy w folderze masz index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]

#ErrorDocument 404 "Nie ma takiego pliku/folderu"



Aktualnie siedzę w panelu admina czyli robię wszystko dla moja-strna.com.pl/admin/...
Mam katalog admin także jak robię cokolwiek na tym katalogu to wszystko jest ok, ale gdy już chce wpisać coś po adminie np moja-strona.com.pl/admin/news/ to już przerzuca mnie na index główny (w głównym katalogu) no bo nie ma katalogu news w katalogu admin (admin/news/).

I tu moje pytanie. Jak zrobić w htacces (Wiem, że da się to zrobić inaczej. Wiem, że mogę np w głównym folderze zrobić preg_match("/^\/admin\*?/", $_SERVER['REQUEST_URI'] i odpowiednio wczytywać , ale mi chodzi typowo o htacces) przekierowanie na katalog /admin/ za każdym razem gdy w adresie zaraz po domenie znajduje się /admin/, /admin/cos/, /admin/cos/cos2/ itp czyli np (moja-strona.com.pl/admin/ LUB moja-strna.com.pl/admin/news/ ) itp.

Z góry dziękuje.
Lord

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.moja-strona.com.pl$
RewriteRule ^admin/(.*)$ http://moja-strona.com.pl/admin/?action=$1 [R=301,L]

dodać jako pierwsza taka regułe, że wszystko co tyczy sie katalogu admin ma kierować na index.php w adminie, nei wiem czy dobrze to napisałem ale tak to trzeba rozwiązać.
tarzinio
Niestety nie działa. Ale z tego co widzę to wywala mi to co mam poza /admin/ do zmiennej action.
Lord
znaczy nie jestem pewien czy dobrze to napisałem :] nie chce mi sie tego testować
chyba powinno to być jednak niżej

jak masz regułe
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]

to ona oznacza ze wszystko co masz przekieruj na index.php w katalogu głownym o ile nie ma pliku i ktalogu okreslonego

dlatego jak nie masz katalogu

/admin/cokolwiek/

to przekierowuje ci na główny index twojej strony

dlatego chyba powinno to wygladać tak
RewriteRule ^admin/(.*) admin/index.php?tocowpisalespo=$1 [L,QSA]
RewriteRule (.*) index.php [L,QSA]


ogolnie musisz przed ta głowna reguła przekierować sobie wszystko z katalogu admin na index.php w adminie ;P, albo obsłuzyc to php w głównym index.php
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.