Skocz do zawartości

[.htaccess] Przyjazne linki po raz n`ty


k0l3c

Rekomendowane odpowiedzi

Do rzeczy:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?m1=$1 [L]
RewriteRule ^(.*)/([^-]+)$ index.php?m1=$1&m2=$2

Głowne menu mam w index.php

..
<li><a href="/oferta">Oferta</a></li>
..
if($_GET['m1'] == 'oferta') {
include('menu/oferta.php');
}
..

Jak widać, to menu mam w podkatalogu i działa powiedzmy ok.

Problem pojawia się jak chcę wejść w podkategorię, do czego potrzebuje dwóch zmiennych.

TO JEST oferta.php
..
<li><a href="/oferta/automatyka">Automatyka</a></li>
..
<div id="zawartosc">
if($_GET['m2'] == 'automatyka') {
include('menu2/automatyka.php');
}
</div>

I tutaj powinienem za pomocą m1 includować menu/oferta.php, a za pomocą m2 menu2/automatyka.php.

Jeżeli adres wygląda tak: domena.pl/?m1=oferta&m2=automatyka

to wszystko działa, jednak jak już wygląda tak: domena.pl/oferta/automatyka

to nie chce.

Dodam, że jest to chwilowo na subdomenie i domena.pl/oferta działa prawidłowo.

Co robię źle?

Aha, dodatkowo jak przechodzę z index.php do kategorii to działa ok, ale jak idę z innej strony od razu do kategorii, to nie wczytuje css.

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

to nie wczytuje css.

Zainteresuj się

 <base href="https://www.adresbazowy.pl/" />

w sekcji <head> lub używaj bezwzględnych adresów do plików.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Myślę, że tracisz czas, bo dłubiesz już w tym PHP od dłuższego czasu, a jak widać stoisz w miejscu nawet z podstawami ...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mion, napisałem swego czasu między innymi system do sprawdzania pozycji (oczywiście z pomocą głównie Twoją) i cms katalog stron z przyjaznymi urlami i generatorem metadanych.

Jednak składał się w samego index.php, tym razem chciałem mieć porządek i nie korzystać z baz danych.

Będę wdzięczny za wskazówkę.

Pierwszy parametr pomimo wpisu w httacces traktowany jest jako katalog?

No i w ten sposób działa dobrze:

domena.pl/?m1=oferta&m2=automatyka

Więc problem jest w .htaccess, bo to rozwiązanie już nie:

domena.pl/oferta/automatyka

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Więc problem jest w .htaccess, bo to rozwiązanie już nie:

Noto wiec go rozwiąż zamiast czekać aż znowu ktoś za ciebie to zrobi !

https://www.forum.optymalizacja.com/topic/69289-podstawy-wyrazen-regularnych-w-kontekscie-mod-rewrite/

https://www.forum.optymalizacja.com/topic/62516-faq-htaccess-301-i-inne-seo-porady/

To jak już pisałem sa PODSTAWY ...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Kolec - nie chce Cię dołować tak jak Mion, ale jeżeli chcesz się na poważnie nauczyć PHP to

1) przejdź jakiś cały kurs php nawet jeżeli połowa to będą rzeczy które już znasz, np.: https://w3schools.com/php/

2) Naucz się jakiegoś nowoczesnego frameworka gdzie poznasz pojęcia takie jak routing URL, bo to co próbujesz robić to jest rounting URL tylko robisz to źle w sensie architektonicznym, np. taki FW: https://www.fuelphp.com i routing: https://fuelphp.com/d...al/routing.html

Odnośnik do komentarza
Udostępnij na innych stronach

No i zrobiłem tak jak chciałem na samym początku. (zostawiam dla pokoleń)

index.php

..
<a href="/oferta">oferta</a>
..
if(isset($_GET['oferta'])) {
include('oferta.php');
}

oferta.php

..
<a href="/oferta/automatyka">Automatyka</a>
..
if($_GET['oferta'] == 'automatyka') {
include('menu2/automatyka.php');
}

.htaccess

RewriteEngine On
RewriteRule ^([a-z]+)$ index.php?$1
RewriteRule ^([a-z]+)/([^-]+)$ index.php?$1=$2

penguins.jpg

Odwiedzaj regularnie mój blog o seo na lukaszt.pl podobno warto ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Zaiste to wszystko bezmyślne:

RewriteRule ^([a-z]+)$ index.php?$1
RewriteRule ^([a-z]+)/([^-]+)$ index.php?$1=$2

działa, bo działa :]

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Beznadziejny przypadek... :nonono: ..a co jak będziesz miał np. /oferta/budownictwo/materialy/cegly/polimerowe/ albo jeszczegłębsze załębienie katalogów? Będziesz walił potworki w stylu:

RewriteRule ^([a-z]+)$ index.php?$1

RewriteRule ^([a-z]+)/([^-]+)$ index.php?$1=$2

RewriteRule ^([a-z]+)/([^-]+)/.../$ index.php?$1=$2...

RewriteRule ^([a-z]+)/([^-]+)/.../..../$ index.php?$1=$2...

RewriteRule ^([a-z]+)/([^-]+)/.../..../.../..../$ index.php?$1=$2..bla bla bla

itd. ?

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności