Mam problem, bo nie mogę znaleźć nigdzie informacji czy w htaccess da się zrobić coś takiego.
Mam stronę - adres.pl/x5-kontakt.html, jest szansa żeby odpalała się jako - adres.pl/kontakt?
Jest robiona na archaicznym autorskim cmsie gdzie dodawanie podstron ma przedrostek x + numer + nazwa .html. Zostaje przepisanie dodawania podstron czy jest inna opcja?
Tak zrobisz to w htaccess.
mr_jaro napisał(a):
Tak zrobisz to w htaccess.
Samym rewrite jestem w stanie skrócić link? Jest jakaś opcja np usuniecia z linku 3 pierwszych znaków? Bo wiem, że można kasować .html to gdzieś sobie odnajdę, ale jak ugryźć to x5-?
Możesz wszystko, zależy czy chcesz tylko ten jeden konkretny link czy globalnie. np możesz użyć regexa do wykrywania linków i zmiany konkretnych fragmentów.
mr_jaro napisał(a):
Możesz wszystko, zależy czy chcesz tylko ten jeden konkretny link czy globalnie. np możesz użyć regexa do wykrywania linków i zmiany konkretnych fragmentów.
Jest kilka linków do zmiany, ale zależy mi najbardziej na tych najczęściej używanych, czyli pewnie z 5. Moge je dopisać ręcznie, bo z regexa nigdy nie korzystałem.
Jest faktycznie szansa, że z samego htaccess moge zrobić ladniejsze linki? Że przejście do podstrony będzie a href /x5-kontakt a na URL będzie sie pojawiał samo /kontakt?
Sprawdzam teraz jakieś generatory, czy redirect 301 to zrobie?
Nie. Redirect to redirect, a nie zmiana urla.
Spróbuj tak:
RewriteEngine On
RewriteRule ^kontakt$ x5-kontakt.html
Pytań więcej niż informacji.
Podaj to co masz teraz w .htaccess
,bo bez tego to można sobie tylko wróżyć.
Doklejanie kolejnych linijek rewrite
nie pomoże....
Pytanie co się dzieje z linkiem w takiej formie: x5-kontakt.html
On musi być na jakiś plik chyba kierowany i tam obsługiwany? Skoro to jakiś CMS - stary czy nowy - to na pewno jest to jakoś przemyślane i rozwiązane. Co to jest ta cyferka 5 - jakaś dowolna/losowa cyferka? Czemu tam jest akurat x
, a nie np y
?
NewUser2k13 napisał(a):
Pytań więcej niż informacji.
Podaj to co masz teraz w
.htaccess
,bo bez tego to można sobie tylko wróżyć.
Doklejanie kolejnych linijekrewrite
nie pomoże....Pytanie co się dzieje z linkiem w takiej formie:
x5-kontakt.html
On musi być na jakiś plik chyba kierowany i tam obsługiwany? Skoro to jakiś CMS - stary czy nowy - to na pewno jest to jakoś przemyślane i rozwiązane. Co to jest ta cyferka 5 - jakaś dowolna/losowa cyferka? Czemu tam jest akuratx
, a nie npy
?
Nie wiem dlaczego x, nie ja tworzyłem tą stronę, mam za zadanie tylko zmiane linków.
Path podstrony jest taki x + pageid + funkcja zamieniajaca wpisana nazwe na taka sama tylko bez polskich znaków.
Niestety przekierowanie po dodaniu #kontakt na localhoscie nie działa. Istnieje jakiś rewrite important?
RewriteEngine On
#RewriteBase /
#kategorie
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ index.php [F,L]
#kontakt
RewriteRule ^kontakt$ x7-kontakt.html
#tagi
RewriteRule ^tag-(.*).html(.*)$ index.php?tag=$1&action=$3 [L]
RewriteRule ^(.*)-tag.html(.*)$ tag.php?tag=$1&action=$3 [L]
#aktualności
RewriteRule ^n(\d*)-(.*).html(.*)$ news.php?news=$1&action=$3 [L]
#aktualności kategorie
RewriteRule ^d(\d*)-(.*).html(.*)$ index.php?dzial=$1 [L]
#podstrony
RewriteRule ^s(\d*)-(.*).html(.*)$ pd.php?id=$1&action=$3 [L]
#realizacje
RewriteRule ^g(\d*)-(.*).html(.*)$ pd.php?gal=$1&action=$3 [L]
#produkty
RewriteRule ^(.*)/(.*).html(.*)$ prod.php?prod=$2&action=$3 [L]
#kategorie
RewriteRule ^(.*).html(.*)$ oferta.php?cat=$1&p=$2 [L]
#php2htm
RewriteRule ^(.*).htm$ $1.php [L]
ErrorDocument 404 /404.php
Przy zamianie
#kontakt
RewriteRule ^kontakt$ x7-kontakt.html
na
#kontakt
RewriteRule ^ x7-kontakt.html$ kontakt
wyrzuca błąd, bo nie może odnaleźć pliku kontakt. Samo przekierowanie raczej działa. Żeby całość spójnie działała musze teraz dać kontakt.html i tam include x7 kontakt? Czy inaczej sie to robi? Pierwszy raz mam kontakt z htaccess, wybaczcie takie amatorsko-głupie pytania.
1. Po pierwsze.
To przekierowanie nie zadziała. Patrz na .htaccess
RewriteRule ^s(\d*)-(.*).html(.*)$ pd.php?id=$1&action=$3 [L]
Przerzucasz cokolwiek co zaczyna się od s
, na pd.php
tam masz pobieranie po id.
Aby to działało jak Ty chcesz, to musisz przede wszystkim zamiast po ID
pobierać po np SEO
danego zasobu.