Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] htaccess
Forum PHP.pl > Forum > Przedszkole
Dissio
  1. RewriteEngine ON
  2. DirectoryIndex index.php
  3.  
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. RewriteCond %{SCRIPT_FILENAME} !-d
  6. RewriteRule ^artykul/(\w+)$ ./artykul_strona.php?artykul_url=$1
  7. RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ artykul_strona.php?artykul_url=$1
  8.  
  9. RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ definicje_strona.php?title_url=$2 [L]
  10.  
  11.  
  12.  


^ Plik htaccess

Mam tak na stronie glownej artykuly i obrazki pobierane bazy danych. Klikajac na dany obrazek/ artykul przechodzi sie albo do dynamicznie generowanej strony artykulu albo obrazka. Wszystko dzialalo dopoty mialem na stronie tylko 1 zasade. Wiem ze sa one takie same, ale nie potrafie zmienic jakiejkolwiek, zeby wszystko dzialalo.
Licze na pomoc

Fragment kodu php < z glownej strony, ktora linkuje do konkretnego artykulu >
  1. echo "<a href='$row[artykul_url]'


ps W zaleznosci, ktora regula jest wyzej, ta po nakliknieciu w link dziala.
2 jezeli wpisuje w url "brzydkie" linki to dzialaja..

Mam nadzieje ze zrozumieliscie Pozdrawiam
trueblue
Jeżeli linki mają identyczną budowę, to nic tu nie pomoże .htaccess.
Pokaż jak wyglądają wygenerowane linki.
Dissio
masz na mysli "ladne linki"

to jest link kiedy na gorze jest regula artykulow

  1. http://localhost/aptana/ontrna/Witam_na_poczatku



a to jest link kiedy regula jest obrazek

  1. http://localhost/aptana/ontrna/obraz2



czesc, przejscia "getowego" do obrazkow

  1. echo "<a href=\"".$row['title_url'].





trueblue
Jedyną różnicą jest tu wielka litery i podkreślniki w przypadku artykułu, ale podejrzewam, że to czysty przypadek i nie można się na tym oprzeć.
Możesz dodać, do któregoś z nich wyróżnik, np. "Witam_na_poczatku,artykul".
Dissio
wlasnie probowalem jakos dac np przed nazwa artykul/ ewent. po, ale nie potrafie :/

jest raczkujacym w sprawie htaccessa tongue.gif
trueblue
Kod
RewriteCond %{REQUEST_URI} (.+)?/artykul/(\w+)$
RewriteRule .* http://localhost/aptana/ontrna/artykul_strona.php?artykul_url=%2

Przed regułą dla obrazków.
Dissio
niestety ale nie dziala, moglbym prosic o jasniejsze wskazowki?
trueblue
Powyższe linie umieszczasz zamiast obecnych dotyczących artykułu, nad regułami dotyczącymi obrazków.
Dissio
zrobione tak jak powiedziales, niestety wciaz klikajac na artykulow, zalącza sie dynamiczna strona obrazkow :/
trueblue
A zmieniłeś budowę linków w kodzie php/html?
Dissio
link do dynamicznej strony artykulow

  1. echo "<a href='artykul/$row[artykul_url]'


bo rozumiem ze masz na mysli ten artykul przed

trueblue
Ok.
Pokaż cały htaccess i jakiś link (nie kod w php, lecz http://localhost....)
Dissio
po usunieciu

  1. RewriteRule .* [url="http://localhost/aptana/ontrna/artykul_strona.php?artykul_url=%2"]http://localhost/aptana/ontrna/artykul_str...?artykul_url=%2[/url]


klikajach na artykul wchodze w jego strone, ale a) bez stylow css cool.gif przechodzac np do index.php z tej dynamicznej strony zamiast aptana/index.php mam aptana/artykul/index.php

  1. RewriteEngine ON
  2. DirectoryIndex index.php
  3.  
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. RewriteCond %{SCRIPT_FILENAME} !-d
  6. RewriteRule ^/(\w+)$ ./artykul_strona.php?artykul_url=$1
  7.  
  8.  
  9. RewriteCond %{REQUEST_URI} (.+)?/artykul/(\w+)$
  10.  
  11.  
  12.  
  13. RewriteRule ^artykul/([a-zA-Z-_0-9_\-]+)/?$ obrazek_strona.php?title_url=$1 [L]



  1. http://localhost/aptana/ontrna/kontakt.php
trueblue
Dodaj do head:
  1. <base href="/aptana/ontrna/">
Dissio
dodane, jednak nic sie nie zmienilo
trueblue
Regułę w .htaccess stosujesz do artykułów czy obrazków?
Przejrzyj dobrze .htaccess, który wstawiłeś wyżej.
Dissio
RewriteEngine ON
DirectoryIndex index.php

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d



RewriteCond %{REQUEST_URI} (.+)?/artykul/(\w+)$
RewriteRule .* [url="http://localhost/aptana/ontrna/artykul_strona.php?artykul_url=%2"]
RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ ./artykul_strona.php?artykul_url=$1


RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ obrazek_strona.php?title_url=$1 [L]


teraz juz na stronie w nic nie moge wejsc, zaden link nie dziala

czy jezeli mam np obrazek /bla/aptana/obrazek1
to wystarczylo by poprostu dodac bla/aptana/artykul/nazwa_artykulu ?
trueblue
Kod
RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ ./artykul_strona.php?artykul_url=$1

Ta linia nie jest potrzebna.

Cytat
czy jezeli mam np obrazek /bla/aptana/obrazek1
to wystarczylo by poprostu dodac bla/aptana/artykul/nazwa_artykulu ?

Kompletnie nie rozumiem. Co mają obrazki do artykułów? Chciałeś utworzyć dwa odrębne, działające, przyjazne linki dla artykułów i obrazków.
Dissio
dokladnie i chodzi o to, ze nie dziala to poprawnie bo sa 2 te same zasady, i jedna trzeba bylo by kompletnie zmienic, np dajac przed nazwa artykulu slowa "artykul" ?
trueblue
Tak, ale ta zmieniona reguła dotyczy artykułów, a nie obrazków.
Jeśli url artykułu był "moj_artykul", to teraz powinien być "artykul/moj_artykul".
Dissio
wlasnie tez chcialbym tak zrobic i niestety ani teraz ani wczesniej korzystajac z internetowych poradnikow, nie potrafilem tego "zamontowac"
trueblue
echo "<a href='artykul/$row[artykul_url]'>aaa</a>";
Dissio
  1. RewriteEngine ON
  2. DirectoryIndex index.php
  3.  
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. RewriteCond %{SCRIPT_FILENAME} !-d
  6.  
  7.  
  8.  
  9.  
  10. RewriteCond %{REQUEST_URI} (.+)?/artykul/(\w+)$
  11. RewriteRule .* [url="http://localhost/aptana/ontrna/artykul_strona.php?artykul_url=%2"]http://localhost/aptana/ontrna/artykul_str...?artykul_url=%2[/url]
  12.  
  13.  
  14. RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ obrazek_strona.php?title_url=$1 [L]


tak wyglada htaccces, jest base href i jest
  1. artykul/$row...
trueblue
Co dokładnie nie działa?
Dissio
klikajac na obrazek wchodze na obrazek, ale klikajac w artykul wchodze w dynamiczna strona obrazka (oczywiscie jest pusta)

  1. include_once('db_connection.php');
  2. if($mysqli->connect_errno) die("Connect failed: %s\n". $mysqli->connect_error);
  3. @$artykul_url = (string) $_GET['artykul_url']; // BARDZO WAZNA ZMIENNA
  4. //$query=$mysqli->query("select * from artykly where artykul_url = '@$artykul_url'");
  5. $Q="select * from artykuly where artykul_url = '$artykul_url'";
  6. // echo "<div>[$Q]</div></br>";
  7. $query=$mysqli->query($Q);
  8.  
  9.  
  10. while($row=$query->fetch_array(MYSQLI_ASSOC))



a i jeszcze plik dynamicznej strony artykulow *obrazkow jest taki sam tylko jest obrazek_url
trueblue
Wklej tu pełny link do artykułu.
Dissio
  1. echo "<a href='artykul/$row[artykul_url]' style='text-decoration:none; ' title='Czytaj więcej...' id='czytaj_wiecej'>Czytaj wiecej...</a>";
trueblue
Nie kod. Link, prawy klawisz myszy, "kopiuj adres".
Dissio
  1. http://localhost/aptana/ontrna/artykul/Witam_na_poczatku
trueblue
Testowałem na .htaccess:
Kod
RewriteEngine ON
DirectoryIndex index.php

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

RewriteCond %{REQUEST_URI} (.+)?/artykul/([\w_]+)$
RewriteRule .* artykul_strona.php?artykul_url=%2

RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ obrazek_strona.php?title_url=$1 [L]


Oraz artykul_strona.php:
  1. <?php
  2. echo $_GET['artykul_url'];
  3. ?>


Z base href.

Działa bez problemu.
Dissio
dziala ale tak:

nie wczytuja sie style, dziala obrazek_url, ale klikajac np. na index.php wychodzi:

  1. http://localhost/aptana/ontrna/artykul/index.php
trueblue
Pokaż jak wygląda cały tag <base
Dissio
  1. <base href="/aptana/ontrna/">


i jest w index.php

trueblue
I na pewno jest w sekcji head strony?
Na początku sekcji?
Dissio
100% smile.gif
trueblue
A w jakim pliku masz link do index.php o którym pisałeś wyżej, tzn. na jakiej ścieżce siedzi?
Jest w tym pliku tag base?
Dissio
plik base jest tylko w index.php

a w pliku dynamicznym artykulu jest ten dziwny link do indexu phh <czyt. artykul/index.php>
trueblue
I w pliku index.php generujesz linki do artykułów, jak również w nim dołączasz style css do sekcji head?
Dissio
w pliku index.php jest zinkludowany plik artykul.php (on jest css'sem dla artykulów na stronie głownej, wyswietla je) w artykul.php jest ten klik do dynamicznej strony artykulow, i base href jest tylko w index.php
trueblue
Najlepiej jakbyś pokazał źródło strony z head (base i link do css) i body z jednym linkiem.
Dissio
ale ktorej strony?
trueblue
Tej, którą generuje index.php
Dissio
ok
base href przydal sie w tej stronie co byla generowana, po pierwsze jestes mistrzem cierpliwosci, po 2 jezeli chcesz daj mi na pw nr twojego konta wysli Ci symboliczne 5zł na piwo smile.gif
trueblue
Nie ma potrzeby:)

Powodzenia w dalszych działaniach!
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.