Przekierowania / htaccess

0

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?

2

Tak zrobisz to w htaccess.

0
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-?

2

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.

0
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?

1

Nie. Redirect to redirect, a nie zmiana urla.

Spróbuj tak:

RewriteEngine On
RewriteRule   ^kontakt$   x5-kontakt.html
1

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 ?

0
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 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 ?

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

0

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.

2

@4michal

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1