Problem z plikiem .htaccess |
Problem z plikiem .htaccess |
19.10.2022, 13:56:54
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
Witam otóż mój problem wygląda nastepująco. Na stronie index.php mam dwa odnośniki, z ktorych dane pobierane są z bazy danych:
1. <a href=".$row['mlink'].">".$row['miasto']."</a> 2. <a href=".$row['link'].">".$row['tytul']."</a> Po kliknieciu w odnośnik przechodzimy do stron site.php gdzie wyswietla się zawartość. Plik .htacces zamienia mi tylko aby link wygladal na przyjazny czyli domena.pl/tytul, a nie domena.pl/site.php?link=tytul Moj plik htaccess: RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule (.*) $1.php [L] RewriteBase / Options FollowSymLinks RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC] RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] Wszystko działa jeśli klikniemy w ten drugi link, jak klikam w ten pierwszy nic sie nie wyswietla, pytanie co by trzeba zmienic, podejrzewam ze w pliku htaccess, bo dodanie takiej reguły RewriteRule (.+)$ site.php?mlink=$1 [L] nic nie daje. Umiescilem w pliku site.php takie cos ale tez nic nie pomaga, dlatego prosze o pomoc <?php if($_GET['mlink']) require "get_mlink.php"; if($_GET['link']) require "get_link.php"; ?> |
|
|
19.10.2022, 17:01:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A w jaki sposób chciałbyś aby dwa adresy o takiej samej budowie były rozwijane na dwa odrębne adresy?
Skąd niby .htaccess ma wiedzieć, że raz /abc ma zostać przekierowane na skrypt.php?mlink=abc, a innym razem na skrypt.php?link=abc ? Adresy w HTML musisz zbudować tak, aby ich struktura różniła się. Wtedy dodać odpowiednie reguły w .htaccess. Cytat Plik .htacces zamienia mi tylko aby link wygladal na przyjazny czyli domena.pl/tytul Twój plik .htaccess tego nie robi i zazwyczaj się jego do tego nie używa. -------------------- |
|
|
19.10.2022, 17:44:50
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
Myślałem że dobrym zwyczajem jest jeden punkt wejścia czyli wejście na site.php. Czyli wychodzi na to że muszę utworzyć nowy plik np. miasto.php i tam kierować odnośnik mlink? Jak będę mieć 10 podstron to muszę utworzyć 10 osobnych plików PHP i dla każdego osobny plik htaccess? Trochę coś nie tak. Może jest to kwestia zmiany wizualnej linka i zmiana tego w htaccess?
Ten post edytował stanley1984 19.10.2022, 17:47:58 |
|
|
19.10.2022, 18:00:34
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Napisałem wyżej, że musisz budować różne adresy w HTML. Nie dostrzegasz tego, że obecnie obydwa mają taką samą strukturę?
-------------------- |
|
|
19.10.2022, 18:59:23
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 523 Pomógł: 6309 Dołączył: 27.12.2004 |
Ja tylko nie rozumiem co to robi w BAZY DANYCH... przenosze.
Co do problemu to tak jak ci pisano, masz miec rozna strukture linkow Nie zadne: /warszawa /costamjeszcze bo skad htaccess ma wiedziec ze warszawa to ma robic ?mlink=warszara a to drugie ma robic ?link=costamjeszcze Ma byc np. cos ala: /miasto/warszawa albo /m-warszawa Albo cokolwiek sobie wymyslisz, tylko by to mialo rece i nogi i by htaccess byl wstanie odroznic te dwa rozne typy linkow. I wtedy oba sobie mozesz przekierowywac na to samo site.php, -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
19.10.2022, 20:36:52
Post
#6
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
Rozumiem, Ok pierwszy link w takim razie wyglada tak:
<a href=miasto/".$row['mlink'].">".$row['miasto']."</a> a drugi tak: <a href=".$row['link'].">".$row['tytul']."</a> Pierwszy pokazuje link domena.pl/miasto/warszawa, drugi pokazuje domena.pl/jakis-artykul Jak w takim razie zmienic htaccess i oba przekierowac na site.php? Gdyż domena.pl/jakis-artykul wyswietla mi artykul, a domena.pl/miasto/warszawa nie wyswietla nic, stosujac oczywiscie ten htaccess RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule (.*) $1.php [L] RewriteBase / Options FollowSymLinks RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC] RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] |
|
|
19.10.2022, 20:38:40
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Musisz dodać regułę obsługującą stałą frazę miasto + zmienny fragment, czyli zmodyfikować obecną i wstawić jako nową.
-------------------- |
|
|
19.10.2022, 20:48:12
Post
#8
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
Szczerze to niewiem jak to zrobic, i dumam się już z tym trzeci dzien
|
|
|
20.10.2022, 07:22:43
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
20.10.2022, 21:07:29
Post
#10
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
Ok dzięki spróbuję coś pokombinować
No niestety dalej cos nie moge Mam takie linki 1.<a href=miasto/".$row['mlink'].">".$row['miasto']."</a> 2.<a href=".$row['link'].">".$row['tytul']."</a> Mam taki plik htaccess: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^miasto/([^/]+)$ miasto/site.php?mlink=$1 [L] Tytuł mi pokazuje tzn domena.pl/tytul, a drugi link domena.pl/miasto/warszawa nie pokazuje nic |
|
|
20.10.2022, 21:25:41
Post
#11
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
zmień kolejność, rewrite z miastem musi być nad tym podstawowym /(.*)
|
|
|
20.10.2022, 21:33:58
Post
#12
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
Zamieniłem kolejnosc, efekt ten sam:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] RewriteRule ^miasto/([^/]+)$ miasto/site.php?mlink=$1 [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] niewiem gdzie ja mam to z.....e |
|
|
20.10.2022, 21:38:49
Post
#13
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
RewriteEngine On
RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^miasto/([^/]+)$ miasto/site.php?mlink=$1 [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] |
|
|
20.10.2022, 21:43:46
Post
#14
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.02.2020 Ostrzeżenie: (0%) |
jak zmienie recznie ten pierwszy link na <a href=site.php?mlink=".$row['mlink'].">".$row['miasto']."</a> to dziala, ale wtedy w linku mam domena.pl/site.php?mlink=warszawa, a chcem, domena.pl/miasto/warszawa, jak zmienie na <a href=miasto/site.php?mlink=".$row['mlink'].">".$row['miasto']."</a> zeby te linki jak pisali poprzednicy wczesniej sie roznily to mam domena.pl/miasto/warszawa ale nie wyswietla sie nic
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^miasto/([^/]+)$ miasto/site.php?mlink=$1 [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)$ site.php?link=$1 [L] Taki pli htacess wywala mi bład po kliknieci w miasto: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at serwer2286199@serwer2286199.home.pl to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. |
|
|
20.10.2022, 22:09:39
Post
#15
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
Zrobiłem test i u mnie wszystko działa dobrze...
hosting: mydevil.net struktura: miasto/site.php site.php .htaccess
Po wpisaniu: domena.pl/miasto/warszawa dostaje odpowiedź ze skryptu: miasto/site.php Po wpisaniu: domena.pl/test dostaje odpowiedź ze skryptu: site.php Pozdrawiam ps. na priv wysylam Ci link do testówki Ten post edytował aras785 20.10.2022, 22:11:04 |
|
|
Wersja Lo-Fi | Aktualny czas: 12.11.2024 - 06:00 |