Skocz do zawartości

Przekierowanie 301 w php


jarcow

Rekomendowane odpowiedzi

Nie mam dostępu do httaccess, a zależy mi na przekierowaniu 301 głównej strony oraz podstron.

https://www.stara-strona.pl/ na https://nowa-strona.pl/

https://www.stara-strona.pl/podstrona-1.htm na https://nowa-strona.pl/podstrona-1/

https://www.stara-strona.pl/podstrona-2.htm na https://nowa-strona.pl/podstrona-2/

https://www.stara-strona.pl/podstrona-3.htm na https://nowa-strona.pl/podstrona-3/

https://www.stara-strona.pl/podstrona-4.htm na https://nowa-strona.pl/podstrona-4/

Przekierowanie 301 samej głównej strony w index.php wygląda tak:

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: https://nowa-strona.pl/" );
?>

A jak wygląda przekierowanie 301 wyżej wymienionych linków?

Z góry wielkie dzięki za pomoc ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem czy o to Ci chodzi :

<head>
<meta http-equiv="Refresh" content="0; url=https://url" />
</head>

Nie, nie o to. Jest to zwykłe przekierowanie, a mi chodzi o przekierowanie 301, które przeniesie moje linki na nowe strony.

Całość musi być zapisana w pliku index.php, ponieważ jak już pisałem, nie mam dostępu do httaccess.

Odnośnik do komentarza
Udostępnij na innych stronach

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://nowa-domena.pl'.$_SERVER['REQUEST_URI']);
header('Connection: close');
?>

edit

Dopiero teraz zauważyłem, że linki na nowej domenie są inne, niż na starej.

Możesz pobawić się w str_replace() z tym REQUEST_URI i będzie działać :)

Skuteczne kampanie AdWords - Redseo.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli innymi słowy powinno to wyglądać tak:

<?
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://nowa-strona.pl/'.$_SERVER['REQUEST_URI']);
header('Connection: close');
?>

<?
$link = $_SERVER['REQUEST_URI'];
$link = str_replace('https://www.stara-strona.pl/podstrona-1.htm ', '/', $link);

header('HTTP/1.1 301 Moved Permanently');
header('Location: https://nowa-strona.pl/podstrona-1/'.$link);
header('Connection: close');
?>

Czy dobrze to rozumiem, czy coś pochrzaniłem??

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, mam stronę statyczną w htm i chcę tam wrzucić index.php z przekierowaniem 301 głównej strony i wszystkich podstron, jak pisałem na początku. Niestety nie mam dostępu do htaccessa.

Coś poradzicie??

-----------------Edit

Ewentualnie, które inne przekierowanie mógłbym wkleić do kodu każdej podstrony htm, by przekierować na inny adres.

Znalazłem coś takiego:

1. ColdFusion:

<.cfheader statuscode=?301? statustext=?Moved permanently?>

<.cfheader name=?Location? value=?https://www.nowy-adres.pl?>

2. PHP:

<?

Header( ?HTTP/1.1 301 Moved Permanently? );

Header( ?Location: https://www.nowy-adres.pl? );

?>

3. ASP:

<%@ Language=VBScript %>

<%

Response.Status=?301 Moved Permanently?;

Response.AddHeader(?Location?,?https://www.nowy-adres.pl/?);

%>

4. ASP .NET:

<script runat=?server?>

private void Page_Load(object sender, System.EventArgs e)

{

Response.Status = ?301 Moved Permanently?;

Response.AddHeader(?Location?,?https://www.nowy-adres.pl?);

}

</script>

5. JSP (Java):

<%

response.setStatus(301);

response.setHeader( ?Location?, ?https://www.nowy-adres.pl/? );

response.setHeader( ?Connection?, ?close? );

%>

6. CGI PERL:

$q = new CGI;

print $q->redirect(?https://www.nowy-adres.pl/?);

7. Ruby on Rails:

def old_action

headers[?Status?] = ?301 Moved Permanently?

redirect_to ?https://www.nowy-adres.pl/?

end

8. Przekierowanie z domeny na domenę (htaccess):

Stwórz plik o nazwie .htaccess i zamieść w nim poniższy kod. Plik powinien zostać wgrany na serwer do katalogu roota.

Options +FollowSymLinks

RewriteEngine on

RewriteRule (.*) https://www.nowa-domena.pl/$1 [R=301,L]

9. Przekierowanie na www (htaccess):

Stwórz plik o nazwie .htaccess i zamieść w nim poniższy kod. Plik powinien zostać wgrany na serwer do katalogu roota.

Options +FollowSymlinks

RewriteEngine on

rewritecond %{http_host} ^domena.pl [nc]

rewriterule ^(.*)$ https://www.domena.pl/$1 [r=301,nc]

Czy któreś z nich zadziała mi w htm?

Odnośnik do komentarza
Udostępnij na innych stronach

Hostingodawca zlitował się nade mną i udostępnił mi httaccess.

Napisałem takie przekierowanie dla głównej domeny i podstron. Stronę główną przekierowuje dobrze, ale podstrony również są przekierowywane na stronę główną, a nie na adres docelowy. Co tu mogę poprawić, by zadziałało dobrze?

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.1.pl
RewriteRule ^(.*)$ https://2.pl/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www.1.pl/a.htm
RewriteRule ^(.*)$ https://2.pl/a/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www.1.pl/b.htm
RewriteRule ^(.*)$ https://2.pl/b/ [R=301,L]

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności