Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Access]Friendly url
Forum PHP.pl > Forum > Przedszkole
doknes
Hej, od kilku minut bawie sie friendly url i mam na razie takie coś:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]*)/([^/]*)$ /index.php?str=$1&user=$2 [L]


I ten kod w .htaccess powien teoretycznie sprawić, że zamiast linku:
http://www.maneku.pl/index.php?str=profil&user=Doknes

będzie działał normalnie link:
http://www.maneku.pl/profil/Doknes

Ale zamiast tego jest tam masa błędów, nie wczytuje sie css i inne...
Beniooo
Pamiętaj, że wtedy taki link przeglądarka traktuje jako katalog.
Podawaj absolutną ścieżkę do CSS, i innych.
Zamist np: css/style.css musisz podać np.: /var/www/html/css/style.css
Turson
@Beniooo, taaa... Przeglądarka nie ma dostepu do katalogu niepublicznego, więc nie wczyta nic z /var/.

http://stackoverflow.com/questions/1330596...ith-mod-rewrite
Beniooo
Oj, pomyliłem się, sorki. @up ma rację. Wystarczy / przed ścieżką ;-)
doknes
No a co z require z php?
Bo w każdej klasie mam require("menu.php");
To nie działa :/
Beniooo
No, i o PHP własnie myślałem pisząc swój poprzedni post.
Możesz sobie zdefiniować stałą HOME_DIR zawierającą pełną ścieżkę do katalogu głównego np.: /home/user/domains/example.com/public_html/ i dawać:
  1. require HOME_DIR.'menu.php';
doknes
Pobrałem sobie najwcześniejszą ścieżke dzięki
realpath(dirname(__FILE__));
i co teraz z tym zrobić na przykładzie:
  1. <style>@import url('css/dark-style.css')</style>

Bo jak dawałem po prostu

  1. $real = realpath(dirname(__FILE__));
  2. echo "<style>@import url($real'css/dark-style.css')</style>";


To mi nie działa :/
Turson
Jak już napisałem, przeglądarka w przeciwieństwie do PHP nie ma dostępu do katalogów typu /etc/var/www/html/style.css ani C:/Program Files/xampp/public_html/style.css
Z obrazkami, js i css wystarczy zastosowac trik, że damy slash na początku
<style>@import url('/css/dark-style.css')</style>
albo z adresem strony
<style>@import url('http://moja-strona.pl/css/dark-style.css')</style>
doknes
to w takim razie jak zdobyć wcześniejsze katalogi? żeby dało sie użyć poprawnie require
com
  1. $real = realpath(dirname(__FILE__));
  2. echo "<style>@import url($real.'css/dark-style.css')</style>";

Jak już to tak smile.gif
robertpiaty
Skrypt PHP ma dostęp do wcześniejszych katalogów (o ile pozwalają na to uprawnienia itp). Natomiast przeglądarka może tylko uruchamiać pliki w folderze publicznym na który wskazuje domena oraz inne pliki w folderach znajdujących się w tym folderze. Było by to bardzo niebezpieczne gdyby z poziomu przeglądarki można było przeglądać sobie wcześniejsze foldery. Dla tego jako ścieżkę do CSS w HTMLu podajesz ścieżkę od folderu na który wskazuje domena.

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.