Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przyjazny adres URL Mod_rewrite .htaccess, PILNE
aleks365
post 27.02.2012, 00:08:56
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

Ostrzeżenie: (0%)
-----


Witam

Mam problem z Mod_rewrite

Przypisałem to i prawie wszystko jest ok

Mam to przypisane tak
www.strona.pl/news/34 < id newsa

i wszystko działa jeśli chodzi o Mod_rewrite tylko problem w tym że nie czyta mi grafiki plików javascript i css

Mój kod .htaccess
Kod
Options FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteRule ^news/([^-]+)/$ index.php?readmore=$1 [L]


chciał bym wykorzystać regule RewriteCand chyba że macie coś lepszego

Proszę o pomoc jaką regułę mam dopisać czy zmienić
Z góry dzięki


Wykluczam dodanie ../ przed adresem do css i grafiki
Go to the top of the page
+Quote Post
denis94
post 27.02.2012, 00:24:17
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


jeżeli masz taka możliwość to najprostszym rozwiązaniem będzie zastosowanie ścieżek bezwzględnych do wszelkiej grafiki, stylów css czy skryptów js
Go to the top of the page
+Quote Post
aleks365
post 27.02.2012, 00:33:47
Post #3





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

Ostrzeżenie: (0%)
-----


No też prawda ale ja jestem człowiekiem wymagającym i dokładnym to wolał bym inne rozwiązanie

ps zastosuje ../ jak nie będę mial wyboru
Go to the top of the page
+Quote Post
Barcelona
post 27.02.2012, 07:09:47
Post #4





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

Ostrzeżenie: (0%)
-----


Przy NiceUrl musisz do css zastosować ścieżki bezwzględne, ja to zrobiłem na zasadzie zmiennej
  1. $adres = "http://www.adres.pl/";
  2. echo '<link rel="stylesheet" type="text/css" href="'.$adres.'style.css" media="screen,projection" />';


Co do grafik, oraz innych plików musisz dać /, nie jest wymagany pełen adres.
Sam niedawno przechodziłem przez NiceUrl, więc wiem że jest to trochę wk****e. Tak samo zacząłem od mod_rewrite, jednak szybko zmieniłem metodę na wygodniejszy kod php. Polecam Ci przeczytanie tutka nospor'a pod tym adresem http://nospor.pl/ladne-urle.html.
Będziesz miał o wiele wygodniejszy system kodowania linków, oraz nie będziesz się musiał bawić z .htaccess
Go to the top of the page
+Quote Post
wujek2009
post 27.02.2012, 08:32:45
Post #5





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

Ostrzeżenie: (0%)
-----


W sekcji head dodaj tag "base href" z odnośnikiem do Twojej strony - rozwiąże to Twój problem.
  1. <base href="http://www.adres.pl/" />
Go to the top of the page
+Quote Post
aleks365
post 27.02.2012, 13:38:40
Post #6





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

Ostrzeżenie: (0%)
-----


Wielkie dzięki zobacze co się uda mi zrobić
Go to the top of the page
+Quote Post
Uriziel01
post 27.02.2012, 14:40:31
Post #7





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


A po co tak kombinowac skoro można po prostu usunąć z tej reguły wszelkie istniejące pliki lub/i katalogi, ewentualnie pliki o danym rozszerzeniu.
Na przykład:
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3. RewriteCond %{REQUEST_URI} !^(\.ico|\.jpg|\.gif|\.js|\.png) [NC]
Go to the top of the page
+Quote Post
nospor
post 27.02.2012, 14:47:20
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Uriziel01 ano dlatego, że stosując tylko to co napisałeś, wchodząc na adres:
http://mojastrona.pl/ladny/url
i mając tam np. coś takiego:
<img src="images/plik.jpg" />
to sorki, ale pliku nie znajdzie bo nie istnieje coś takiego jak
http://mojastrona.pl/ladny/url/images/plik.jpg
Ale za to istnieje:
http://mojastrona.pl/images/plik.jpg
smile.gif

Ja jestem zwolennikiem pełnych ścieżek dla obrazków, plików js czy css


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Uriziel01
post 27.02.2012, 16:47:46
Post #9





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


No i właśnie dlatego też:
  1. RewriteCond %{REQUEST_URI} !^(\.ico|\.jpg|\.gif|\.js|\.png) [NC]


smile.gif
Go to the top of the page
+Quote Post
aleks365
post 27.02.2012, 16:54:43
Post #10





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 27.02.2012, 14:47:20 ) *
Ja jestem zwolennikiem pełnych ścieżek dla obrazków, plików js czy css


Też jestem za bo to proste wink.gif
Go to the top of the page
+Quote Post
nospor
post 27.02.2012, 18:56:53
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Uriziel01 jeden z nas czegoś nie kuma. Być może to jestem ja. Co robi dokładnie ta linijka:
RewriteCond %{REQUEST_URI} !^(\.ico|\.jpg|\.gif|\.js|\.png) [NC]
?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Uriziel01
post 27.02.2012, 19:44:00
Post #12





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Ok to może najbardziej skompresowana możliwa wersja smile.gif Specjalnie dla Ciebie:
Kod .htaccess:
Kod
RewriteEngine on
RewriteCond $1 !\.(gif|jpe?g|png|ico|css|js)$
RewriteRule ^(.*)$ test.php [L,QSA]


kod pliku test.php:
  1. <?PHP
  2. echo '<img src="test.jpg">';
  3. ?>


No i jaki kolwiek plik test.jpg wink.gif Mamy i przekierowanie wszelkich zapytań na pliczek test.php ale także zachowujemy prawidłowe działanie grafiki, arkuszy stylu oraz skryptów js. Jeżeli się w czymś mylę to mnie oczywiście popraw bo zdaje sobie sprawę że jesteś pewnie bardziej doświadczony ode mnie. Pozdrawiam serdecznie.
p.s0piszę tutaj a nie na PW gdyż dla samego autora tematu też może się to w jakiś sposób przydać.

Ten post edytował Uriziel01 27.02.2012, 19:44:49
Go to the top of the page
+Quote Post
nospor
post 27.02.2012, 19:48:34
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale jak to ma sie do problemu? No nijak.

Dla strony: http://mojastrona.pl/ladny/url
plik test.jpg nie istnieje gdyż plik test.jpg znajduje się w katalogu głównym, a dla strony http://mojastrona.pl/ladny/url plik test.jpg szukany jest w http://mojastrona.pl/ladny/url/test.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Uriziel01
post 27.02.2012, 19:59:59
Post #14





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Moja kupa [czyt. mea culpa]. Niestety nie przeczytałem dalszych postów w temacie a z samego postu autora zrozumiałem że problem polega na tym że przepisaniu ulagają wszystkie zapytania, łącznie z tymi do plików statycznych. Oczywiście powinieneś stosować ścieżki bezwzględne, co przy użyciu odpowiedniego reg exp'a można załątwić w przeciągu sekund. Dzięki @nospor jak zwykle za naprostowanie mojej skrzywionej logiki wink.gif
Go to the top of the page
+Quote Post
aleks365
post 27.02.2012, 21:15:43
Post #15





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

Ostrzeżenie: (0%)
-----


Dzięki wam widzę że dużo sugesti macie ja jestem za podanie adresu do css itp bo używać będę np takich adresów (kategoria/pojazdy/audi)

Serdecznie pozdrawiam i dzięki za szybka odpowiedz wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 23:55