mod rewrite+ redirect

dragoner

Użytkownik
Dołączył
Styczeń 24, 2007
Posty
108
Witam mam problem, wszystkie pliki na serwerze mam napisane w ten sposob
index.html default_001.html, default_002.html, default_003.html i tak do 40~~
w każdym pliku mam odnośnik do kazdego pliku. wiec 40x40=1600 elementów musiał bym edytować zeby to ładnie wyglądało.
a chciałbym żeby linki ładniej do mojej strony wyglądały.

Dlatego napisalem takie cos w .htaccess
np:

Kod:
Redirect 301 /default_003.html /firma.html
RewriteEngine On
RewriteRule ^firma.html$ /default_003.html [L]

tylko ze gdy wchodze pod ten adres pokazuje sie napis:
"Ta strona internetowa zawiera pętlę przekierowań" i nie dziala.

a moja logika wygląda w ten sposób co chciałem zrobić:
przypisze sobie pod adres firma.html tak zaby wzkazywal default_003.html
potem pod adres default_003.html zeby mi przekerowywalo na firma.html (żebym nie musiał edytować tych 40 plików i 40 hiperłączy w każdym pliku)
 

ProQix

Użytkownik
Dołączył
Czerwiec 11, 2008
Posty
86
a słyszałeś o czymś takim jak PHP, perl albo IFRAM (to z html'a)
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
Po co pisać jakiekolwiek skrypty w PHP albo Perlu skoro mod_rewrite w zupełności wystarczy? A stosowanie iframe nie jest zalecane (znacznik został usunięty w HTML5).

@dragoner: Usuń pierwszą linijkę ('Redirect 301 ...'), przez nią z default jesteś odsyłany do firma.html, potem (druga i trzecia linia) z firma.html z powrotem do default itd., przez to tworzy się pętla. Używaj zwyczajnie
Kod:
RewriteEngine On
RewriteRule ^firma.html$ /default_003.html [L]
 

dragoner

Użytkownik
Dołączył
Styczeń 24, 2007
Posty
108
Próbowałem w ten sposób

ale jak mam na stronie:
link1 -> przykladowadomena.pl/default_003.html
link2 -> przykladowadomena.pl/default_004.html
itp

to gdy kliknę w ten pierwszy link (link1) wyskakuje mi strona przykladowadomena.pl/default_003.html (i tu właśnie ten problem nadal pokazuje przykladowadomena.pl/default_003.html (a chciałbym żeby pokazywało firma.html) oczywiście gdy wpisze przykladowadomena.pl/firma.html to wskazuje mi treść default_003.html i jest dobrze a dzieje sie to dzieki temu wlasnie kodowi rewrite. a mi chodzi o to żeby nie edytować tych linków na wszystkich stronach żeby nadal w linkach(hiperlaczach htmlu) bylo przykladowadomena.pl/default_003.html a wskazywało odrazu po klikniecu lub nawet przed default_003.html/firma.html)
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
Kod:
RewriteRule ^default_003.html$ /firma.html [R=301,L]
RewriteRule ^firma.html$ /x/default_003.html [L]
Efekt będzie taki jak chcesz, jednak będziesz musiał wszystkie pliki .html przenieść do katalogu /x/ (aczkolwiek będzie można się do nich odwoływać tak, jakby tego katalogu nie było). Lepszego rozwiązania nie jestem w stanie wymyślić.
 

dragoner

Użytkownik
Dołączył
Styczeń 24, 2007
Posty
108
no w sumie, a jeszcze jedno pytanie, moze właściwsze od tego co chciałem zrobić, może jest jakiś program który by mi prosto z edytował te 40 hiperlaczy w 40 plikach. ze zaznaczam 40 plików mam napisane zmien wszystkie "szablon" -> takie jakie chce. i w tych 40 plikach edytuje mi napis "default_003.html" na "firma.html" za kliknieciem "zmien w kazdym pliku" cos takiego
 

dodoxx6

Były Moderator
Dołączył
Luty 15, 2011
Posty
252
O gotowcu nic nie wiem, ale można taki program napisać.
Poza tym, ograniczyć klikanie można wieloma edytorami tekstu (gedit - Ctrl+H, notepad++ - Ctrl+F i zakładka zamień [jeśli dobrze pamiętam]) wpisać "tekst_do_zamiany" w 1. polu "tekst_koncowy" w 2. polu i zamień wszystkie, a jeśli teksty do zamiany to 01, 02, 03 itd... to trzeba trochę się naklikać ale i tak ograniczy ilość roboty, którą wykonamy.
 

dragoner

Użytkownik
Dołączył
Styczeń 24, 2007
Posty
108
no ale takie cos ma nawet zwykly notatnik windowsowski
Moze jest taki porgram ktory zmienia ale w ciagu czyli np zmien wszystko ->co zmienic (default_($_ciąg_liczb_3_miejscowych).html) na i tu tablica []001=cos.html []002=dfsdf.html []003=firma.html i zeby taki przepis mozna bylo zapisac i uzyc do nastepnego pliku zeby nie trzeba bylo pisac takiej tablicy znowu
 
Ostatnio edytowane przez moderatora:

kkowalskipl

Użytkownik
Dołączył
Maj 17, 2011
Posty
19
Oj kolego kolego, ale sobie namąciłeś życie, zacznij używać jakiegoś frameworka PHP z MVC ;). Co do problemu:
RewriteRule ^strona/$1/$
/default_$1.html [L]

Pisze z główy, ale wszystko sporowadza się do stworzenia zmiennej $1 i odpowiednim odwołaniu. Jak nadal zależy Ci na problemie napisz na priv to siądę i porządnie napisze.
 
Do góry Bottom