Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rewrite problem z nieistnejącymi katalogami
Forum PHP.pl > Forum > Serwery WWW
xGrzegorZx
Witam, mam adresy w formie
www.subdomena.domena.pl/?liczba,nazwa-jakas-czegos np. www.subdomena.domena.pl/?123,pizza-peperoni
www.subdomena.domena.pl/?nazwa-jakas-czegos,liczba np. www.subdomena.domena.pl/?pizze,22

Pierwszy z adresów zamieniam w forme www.subdomena.domena.pl/123,pizza-peperoni.html
stosując regułę: RewriteRule ^([0-9]+),(.*)\.html ?$1,$2 [QSA]
i działa poprawnie

Drugi adres zamieniam w forme www.subdomena.domena.pl/pizze,22.html
stosując regułę: RewriteRule ^(.*),([0-9]+)\.html ?$1,$2 [QSA] lub RewriteRule ^(.*),([0-9]+)(,[0-9]*)*(,[0-9]*)*(,[0-9]*)*\.html ?$1,$2,$3,$4,$5 [QSA]
Niestety tutaj adresy zmieniają sie dobrze ale jest problem ponieważ np adres www.subdomena.domena.pl/fkjsdhfkjsd/pizze,22.html tez działa a nie chce zeby działał. Przed pizze,22.html można wpisać cokolwiek i będzie działało np /fsdf/fsd/fsd/fsdf/sd/pizze,22.html tez zadziała ale niestety ten adres jest widoczny w przeglądarce i dla botów indexujących.

Jak wykluczyć lub napisać regułę tak, żeby problem zniknął?
by_ikar
Dzieje się tak bo wyrażenie masz złe. Użyłeś wyrażenia:

Kod
(.*)


Które łapie wszystko, bo tyle oznacza kropka, a gwiazdka to jest zero lub więcej powtórzeń. Jeżeli zmienisz tą kropkę i gwiazdkę na coś takiego:

Kod
RewriteRule ^([^/,]+),([0-9]+)\.html ?$1,$2 [L]


Wówczas złapie ci wszystkie znaki które nie są przecinkiem lub slashem. IMO pomyśl o jakimś dobrym routerze, który zabawy z linkami i zabawą z htaccess zrobi za ciebie.. Taki horde route już jest ok.,
xGrzegorZx
by_ikar dzieki:) Jakbyś mógł to napisz jak jeszcze zrobić żeby z tych wszystkich wymyslonych przez googleboota folderów przekierować R=301 na właściwy adres, wiem jak przekierować z określonego folderu ale jak chce ze wszystkich jedną regułą to nie działa (zapetla się).

Jaka reguła przekieruje wszystkie *.html z www.subdomena.domena.pl/fdfsf/*.html lub www.subdomena.domena.pl/ffsdfdsf/fsdfsdfs/*.html lub jakiegokolwiek folderu lub folderów na www.subdomena.domena.pl/*.html

Licze na pomoc, pozdrawiam.

Ok, Poradziłem sobie:) Pozdrawiam.
by_ikar
Niech te foldery które nie istnieją, zwracają 404, i wszystko, same znikną z wyników wyszukiwania.
xGrzegorZx
by_ikar hehe szkoda mi bylo tracić tych adresów z folderami bo tam było z 7000 stron zaindexowanych przez google dlatego stworzylem regułe z przekierowaniem R=301 na prawidłowe adresy smile.gif I jest dobrze:)

Pozdrawiam:)
by_ikar
Zależy jeszcze jak dużo było tych "katalogów". Jeżeli niezbyt dużo, to faktycznie, szkoda tracić tych zaindeksowanych stron, ale w przypadku kiedy jest ich dość sporo, i linki nie są jakoś specjalnie podobne do siebie, co by można było wyrażeniem złapać, to już by mi się nie chciało bawić i walnąłbym 404 wink.gif
xGrzegorZx
by_ikar na szczęście wszystki konczyły się na .html smile.gif a różnych folderów było dużo smile.gif

Pozdrawiam
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.