![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chcę, aby mod_rewrite przepisywał linki do pliku admin/index.php, jeżeli użytkownik wpisze: domena.com/admin Niestety nie udaje mi się uzyskać zadowalającego efektu. Plik .htaccess:
Kod RewriteEngine On Co należy dopisać, aby serwer rozpoznawał, że trzeba przekierować do panelu admina? Po wpisaniu domena.com/admintest powinna wyświetlić się już właściwa strona (nie panel admina).RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([A-Za-z0-9_/]+)$ index.php?a=$1 [L,QSA] Może lepiej wszystkie żądania przekierować do 1 pliku index.php i dopiero tam rozpoznać, czy trzeba przejść do PA, czy do witryny? URL dzielę na fragmenty w ten sposób: Kod $URL = isset($_GET['a']) ? explode('/',$_GET['a']) : array('main'); Rozważmy adres: domain.com/admin/categoriesW przypadku przekierowania mod_rewrite ID modułu ("categories") znajduje się w $URL[0]. Natomiast gdy wszystkie żądania odbiera index.php, nazwa modułu PA jest przechowywana w $URL[1]. Nie będę mógł potem zmienić sposobu przekierowania bez edycji wszystkich plików lub stosowania trików. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 7 Dołączył: 4.04.2009 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Kod RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^admin/([A-Za-z0-9_/]+)$ admin/index.php?a=$1 [L,NC] RewriteRule ^admin$ admin/index.php [L,NC] Jeżeli dobrze zrozumiałem ; ) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie działa poprawnie. Po wpisaniu "admin" w pasku adresu widać katalog "admin", zaś jest wyświetlana strona główna. Wcześniej jeszcze przepisuję adresy z "localhost" do "localhost/folder", ale to raczej nie ma znaczenia. Chyba, że mam stworzyć kolejny plik .htaccess w folderze "admin" i dodać dodatkowe reguły - ale i tak Apache ich nie uwzględni.
Który sposób zapewni większą stabilność i wydajność? 1. Przepisywanie linków z /admin/ za pomocą .htaccess 2. Użycie 1 pliku index.php, który: a) dołączy panel admina, gdy $URL[0] === 'admin' b) wyświetli właściwą podstronę na podstawie $URL[0], gdy $URL[0] != 'admin' Ten post edytował WebCM 30.04.2009, 18:13:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
A może tak :
Kod <?php RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/admin/ RewriteRule (.*) index.php?a=$1 [L,QSA] ?> Wszystkie żądania zostaną skierowane do pliku głównego oprócz katalogu "admin". Czy o to Ci chodziło ? Ten post edytował szagi3891 30.04.2009, 21:10:29 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Postanowiłem, że wszystkie żądania będzie odbierał plik index.php. Teraz stoję przed kolejnym problemem.
Na początku przypomnę, że w głównym katalogu (localhost) znajduje się .htaccess w regułką: Kod RewriteEngine On Po prostu nie chcę edytować pliku host w systemie. Ona raczej nie ma znaczenia, choć może mylę się?RewriteRule (.+) /strona/$1 [L,QSA] Katalog strona zawiera kolejny .htaccess: Kod php_value session.use_only_cookies 1 W katalogu strona znajduje się folder admin. Niestety, jeżeli w URL-u odwołam się do folderu admin, Apache przekierowuje przeglądarkę do: localhost/strona/admin/?a=adminphp_value session.use_trans_sid 0 php_value register_globals 0 php_value magic_quotes_gpc 0 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d - regułka zbędna RewriteRule (.*) index.php?a=$1 [L,QSA] Nie rozumiem, dlaczego. Co robię źle? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 7 Dołączył: 4.04.2009 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Co do drugiego problemu problemu, wywal flagę QSA. Powinno załatwić sprawę.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wywaliłem z obu plików .htaccess i nic to nie dało.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 04:34 |