To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

HTML/PHP/AJAX/JS - [mod_rewrite] Problem z przyjaznymi URLami

Dj Haker - 04-06-2012, 21:36
Temat postu: [mod_rewrite] Problem z przyjaznymi URLami
Witam.


Mam:
www.xxxxxxx.xx/photo.php?id=22

Chciałbym uzyskać następujący efekt:

www.xxxxxxx.xx/foto/22

Niestety jeżeli ustawię przyjazny adres w .htaccess to strona wyświetla się ale bez grafiki, bez stylu CSS, tak jakby plik photo.php znalazł się w folderze foto ( nieistniejącym ) i tym samym np ścieżka do styli czy też grafiki była by nieprawidłowa. Mam nadzieję, że nie namieszałem nic w opisie i zrozumieliście mnie o co chodzi.
Wersja foto-22 działa prawidłowo. foto/22 już nie.

Mój plik .htaccess

Kod:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteCond %{HTTP_HOST} ^www\.danielszura\.pl$ [NC]
RewriteRule ^(.*)$ http://danielszura.pl/$1 [L,R=301]
RewriteBase /

RewriteRule ^foto/([^-]+)$ photo.php?id=$1 [L]

ServerSignature EMail
SetEnv SERVER_ADMIN daniel@danielszura.pl

SetEnvIfNoCase user-Agent ^eCatch [NC,OR]
SetEnvIfNoCase user-Agent ^EirGrabber [NC,OR]
SetEnvIfNoCase user-Agent ^EmailSiphon [NC,OR]
SetEnvIfNoCase user-Agent ^ExtractorPro [NC,OR]
SetEnvIfNoCase user-Agent ^FlashGet [NC,OR]
SetEnvIfNoCase user-Agent ^GetRight [NC,OR]
SetEnvIfNoCase user-Agent ^Widow [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]


Pozdrawiam i z góry dziękuję za pomoc :)

kevin_ - 05-06-2012, 19:17

Ustaw sobie w sekcji head parametr <base href="http://danielszura.pl" /> powinno pomóc.
Bądź wczytuj linki do obrazków/CSS/JS,itd z adresem folderu np.
stronę trzymasz w folderze /website/
więc pełna ścieżka do obrazka to: /website/images/logo.jpg

jeśli masz w głównym folderze to ścieżka: /images/logo.jpg a nie images/logo.jpg

Dj Haker - 05-06-2012, 20:04

kevin_ napisał/a:
<base href="http://danielszura.pl" />


kevin_ wielkie dzięki ! wystarczyło dodać tą linijkę i wszystko działa.


Po drodze wyszedł na jaw jeszcze jeden problem.

Mam stronę zbudowaną na divach. Mam na stronie galerię zdjęć. Zdjęcia wczytują się w divie #main.

I teraz jak zrobić ( czy wgl jest taka możliwość ) aby po otworzeniu strony foto/22 wczytywał się właśnie ten div a nie góra strony. wersja foto/22#main oczywiście działa ale chciałbym uniknąć takiej adresacji z racji estetyki linków. Czy jest możliwość zrobienia tego w inny sposób ?

kevin_ - 05-06-2012, 20:44

Za pomocą jQuery oczywiście.

Kod:

<script type="text/javascript">
<!--   
    $(document).ready(function() {
        var pozycja = $("#main").position();
        $("body").scrollTop(pozycja.top);
    });
-->
</script>


załącz tylko bibliotekę jQuery

Dj Haker - 05-06-2012, 21:10

Biblioteka jQuery już dawno podłączona bo mam slider i rozbudowane formularze.

Jeszcze raz dziękuję za pomoc.

Temat do zaknięcia :)



Powered by phpBB modified by Przemo © 2003 phpBB Group