![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 1 Dołączył: 1.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Od wczoraj przeczytałem wszyto co można na temat jak zrobić przekierowanie 301 i dalej nie za bardzo rozumiem jak to działa. Zadania , jakie muszę zrobić aby strona działała tak jak tego chcę: - przekierować podstrony serwisu z linków .php na .html oraz wprowadzić linki. - oczywiście usunięcie dupicate content - czyli żadna strona nie może być widziana pod dwoma adresami np. kontakt.php , express.php itd. - strony wpisane tak http://domena.pl na http://www.domena.pl - przyjazne linki (czyli np zamiast sklep_komputerowy.html sklep-komputerowy.html . Generuje mam już gotową stronę w PHP. index.html podstrony: kontakt.php express.php itd.Wszystko jest w jednym katalogu głównym serwera. Linki strony generuję w następujący sposób: menu.php
Plik menu_linki.php
Na każdej stronie dodałem wpis .
Miejsce gdzie generuję linki dla strony. w ramach znaczników body na różnych podstronach
---------------------- Teraz funkcje , które sterują przekierowaniem : switch.php napisna tylko dla dwóch adresów bo jest ona w fazie moich testów i nie wiem czy nie ma gdzieś w niej błędu.
wpis w pliku .htaccess RewriteEngine On RewriteRule (.*)\.html $1\.php RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ <a href="http://www.domena.de/" target="_blank Problem mój polega na tym, że to przekierowanie nie chce mi działać. Co jest nie tak ? Proszę o jakieś wskazówki jak się robi przekierowanie. Nie robię strony z parametrami podkatalogami itd. więc z góry proszę o proste przykłady . Niech mi ktoś wytłumaczy jak zrobić jakieś przekierowanie tak aby uwzględnić również przyjazne linki. Funkcję , która przerabia mi ciąg i przerabia na przyjazne linki mam już nawet napisaną. Ale nie mam pojęcia jak przekierować potem wygenerowane dynamicznie adresy na pliki o nazwach które np. były international_derlivery.php a po konwersji są jako international-delivery.html. znowu problem z przekierowaniem. ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- Znalazłem jeden z błędów , który powodował zamieszanie z wykonywaniem przekierowanie w pliku switch.php. Okazało się , że jest to boom spowodowany dodawaniem trzybajtowego nagłówka utf-8 na jego początku. Po zapisaniu plików w notepad++ z powodzeniem skrypt odpalił. Linki się przekierowują na końcówki z rozszerzeniem .html. Wszystko byłoby super gdyby to było wszystko. Do pliku htaccess. zrobiłem nowe wpisy RewriteRule ^express.html$ express.php [L] RewriteRule ^international_delivery.html$ international_delivery.php [L] Podałem celowo tylko dwa wpisy podstron. Oczywiście strona ma więcej linków i mam problem z tym jak masowo przekierować pliki php na pliki html. Z pomocą przyszła więc regułka, która z powodzeniem zastąpiła obydwa powyższe wpisy. RewriteRule (.*)\.html $1\.php Niestety radość moja nie trwała długo ponieważ po zamianie linków na przyjazne znowu napotkałem schody. Otóż po zamianie linków php na html powstał jeden problem z przyjaznymi linkami. Gdy wygenerowałem sobie pierwszy link na podstawie nazwy pliku international_delivery.php moim oczom ukazał się link w następującej postaci: international-delivery.html . Wszystko byłoby ok gdyby zamiast podkreślnika nie było tam myślnika, który sobie celowo wygenerowałem aby wprowadzić przyjazne linki. Znowu problem przekierowania się pojawia: Jak u diaska przepisać masowo(zbiorczo) wszystkie podobne wygenerowane linki ? Mogę to zastąpić jednorazowo dla konkretnego linku. RewriteRule ^international-delivery.html$ international_delivery.php [L] Ale chcę aby przepisywanie działało dynamicznie w oparciu o przekierowanie 301, które stosuję w php. Póki co koncepcja strony jest cały czas oparta na jednym katalogu, bo chcę zrozumieć trze przekierowania w prostej postaci. Nie ma w Polsce niestety żadnego porządnego FAQ, które wyczerpująco opisuje jak przekierować stronę. W dodatku tu na forum też widzę każdy się udziela jak może. Ten post edytował fiasko 3.06.2010, 13:12:02 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Ale Ty chyba nie kojarzysz do czego używa się nagłówka 301.
Nagłówek ten wysyłasz jeśli linka miałeś np. takiego Kod /foo/bar.php a teraz to co było na /foo/bar.php masz na Kod /bla/bar.php na /foo/bar.php dajesz 301 na /bla/bar.php. wtedy Google wchodząc na /foo/bar.php dostaje info, że ta strona została przeniesiona na inny link i w swoich indeksach zmienia ten link na nowy. -------------------- Moja gra - scraby.io
|
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 1 Dołączył: 1.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
HM.
Ale ja daję przekierowanie po to żeby nie było dwóch stron pod tym samym adresem. Jak przepisałem linki na z rozszerzenia php na html to powstał mi porblem taki, że strona była pod dwoma adresami. Dlatego też dałem przekierowanie z linków o rozszerzeniu PHP na linki o rozszerzeniu .html interesuje mnie jeszcze tylko jak przepisać grupy podobnych adresów RewriteRule ^international-delivery.html$ international_delivery.php [L] Chodzi mi o hurtowe przepisywanie adresów. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Ale dlaczego nagłówek 301 Moved Permanently?
Location nie starczy? -------------------- Moja gra - scraby.io
|
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 1 Dołączył: 1.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale dlaczego nagłówek 301 Moved Permanently? Location nie starczy? No bo samo przekierowanie w : To za mało: Co z tego, ze przekieruję w PHP jak gdy nie dam reguły w celu przepisania linków w .htaccess ? No chyba, że to można jakoś inaczej załatwić, ale samo przekierowanie powyżej u mnie nie załatwia sprawy. Bez regułki .htaccess widzę tylko błąd serwera. no i jak zwykle pomoc =0 Czy jest na tym forum ktoś kto się zna i potrafi udzielić odpowiedzi ![]() ![]() ![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 08:13 |