Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] mod_rewrite w podkatalogu
Forum PHP.pl > Forum > Przedszkole
desavil
Witajcie, mam problem z poprawnym działaniem mod_rewrite w podkatalogu.
Struktura katalogów wygląda tak:
Kod
/public_html/
/public_html/admin/

W katalug public_html, w pliku .htaccess mam wpisane:
  1. Options -Indexes
  2.  
  3. RewriteEngine On
  4. RewriteBase /
  5. RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
  6. RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
  7. RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 [R=301]
  8.  
  9. RewriteRule ^admin/?$ / [R=301,L]
  10. RewriteRule ^images/?$ / [R=301,L]
  11. RewriteRule ^modules/?$ / [R=301,L]
  12. RewriteRule ^sources/?$ / [R=301,L]
  13.  
  14. RewriteRule ^index.html/?$ ? [R=301,L]
  15. RewriteRule ^([a-zA-Z0-9\/\-]+)/?$ index.php?page=$1

Wszystkie pliki graficzne, css itp. są poprzedzone znakiem "/" na początku. Tutaj wszystko działa.
Problem pojawia się w podkatalogu: admin
Chcę tam zastosować również coś porobnego - linki jak powyżej.
Natomiast jak tam wpiszę, deklarację pliku np. css poprzedzonom znakiem "/" to style są czytane z katalogu public_html, nie admin

PS. W tym podkatalogu admin również mam .htaccess z wpisem:
  1. RewriteEngine On
  2. RewriteRule ^([a-zA-Z0-9\/\-]+)/?$ index.php?page=$1
Necsord
"/" odwoluje się do scieżki od domeny, więc w twoim przypadku musiałbyś dać /admin/

http://forum.php.pl/index.php?showtopic=193920&hl=
desavil
Dla folderu mam inne wpisy mod_rewrite.
A umieszczenie RewriteBase /admin/, w .htaccess w katalogu /admin nic nie daje.
Necsord
Ja o rewrite base nic nie mówiłem, więc zakładam, że ty tylko rzuciłeś okiem na link.

W html'owym base możesz dać swoja scieżkę http://jakakolwiekdomena.com/admin/ i wszystkie linki href="cokolwiek.html" bedą doklejane do base.
desavil
HTMLowe rozwiązanie mnie nie interesuje.
Necsord
Jeżeli html'owe rozwiązanie ciebie nie interesuje tak samo jak przerabianie linków to jedyna opcja jaką widzę to reguly rewrite pod pliki, ale nie powiedziałbym by to było poprawne rozwiązanie.

Zasada byłaby coś w schemacie ^admin/(?:.*/)?([^/].[a-z]{2,4}) /admin/$1 . Tyle ze tu problem powstaje jeżeli masz pliki w podkatalogach. Musiałbyś rozrózniać w linku, że to katalog od danego pliku a nie pozostałość z linku strony na której byłeś
desavil
Bo w domyślnym katalogu mam stronę całą, i w niej .htaccess z regółkami odnośnie linków w stylu: url.pl/galeria/1
Do strony tworzę panel admina, który znajduje się w katalogu tym samym co cała strona, czyli: url.pl/admin
Teraz, w katalogu admin mam .htaccess z regółkami odnośnie katalogu admin, czyli linki, w postaci: url.pl/admin/manage/1
favik
Osobiście to wcale bym nie robił i nie robię SEO linków w adminie, bo po co tam one?
desavil
W sumie.. i chyba tak zrobię smile.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.