Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] bład 500
Forum PHP.pl > Forum > Przedszkole
kraken86
Witam

Ostatnio postanowiłem zmienić serwer dla mojej stronki.
Wgrałem wszystki pliki na nowy serwer i moim oczom ukazała sie strona startowa. Niestety wszystkie odnośniki nie działają.
Co może być tego przyczyną ?


To jest fragment kodu odpowiadający za zmianę .( Strona odpala się z pliku index, po naciśnięciu guzika w nawi zmienia wygląd części strony CSS )

<?
$strona = preg_replace('/[^a-zA-Z0-9_\-]/i', '_', $_REQUEST['strona']);
if (!$strona || !file_exists('./strony/' . $strona . '.php'))
{
$strona = 'index';
}
?>



<body>
<div id="wrapper">
<!-- Top -->
<div id="top">
</div>
<!-- Nav -->
<div id="nav">
<ul>
<li<?php echo ($strona == 'index' ? ' class="active"' : '') ?>><a href="/">Strona główna</a></li>
<li<?php echo ($strona == 'ofirmie' ? ' class="active"' : '') ?>><a href="ofirmie.html">O firmie</a></li>
<li<?php echo ($strona == 'oferta' ? ' class="active"' : '') ?>><a href="oferta.html">Oferta</a></li>
<li<?php echo ($strona == 'kontakt' ? ' class="active"' : '') ?>><a href="kontakt.html">Kontakt</a></li>
</ul>
</div>
</body>
Fifi209
Skąd ma pobrać strona skoro linki masz zupełnie inne?
kraken86
strona pobiera z katalogu /strony


if (!$strona || !file_exists('./strony/' . $strona . '.php'))
croc
Masz .htaccess, który zamienia XXX.html na cośtam.php?strona=XXX?
kraken86
wsad do .htacces to:

RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_]+).html$ index.php?strona=$1 [QSA,L]

wszystko do tej pory na starym serwerze działało, czego mogłem jeszcze nie skopiować co jest potrzebne w działaniu strony ?
croc
A jesteś pewien, że Twój nowy serwer obsługuje mod rewrite?
kraken86
Nie jestem pewien nie zwracałem na to uwagi, strona jest wsadzona na serwer http://hostinghouse.pl/ pakiet brązowy. Jak sprawdzić czy obsługuje tą funkcjie?
kraken86
Sprawdziłem serwer obsługuje tą funkcje.

Jeszcze raz wysłałem pik htaccess niestety bez rezultatu.

Jak pozbyć się tego błędu?


croc
Mi to wygląda na błąd w .htaccess. A co się dzieje jak próbujesz się dostać bezpośrednio do /strony/jakaśstrona.php - działa?
kraken86
Jeśli zmieniam wartość w
<?
$strona = preg_replace('/[^a-zA-Z0-9_\-]/i', '_', $_REQUEST['strona']);
if (!$strona || !file_exists('./strony/' . $strona . '.php'))
{
$strona = 'index';
}

na kontakt lub inną to strona otwiera sie normalnie jako strona startowa lecz odnośniki nadal nie działają.



W przypadku zmiany ścierzki na strony/kontakt.php strona otwiera się lecz bez elementów zdefiniowanych w index.html i skryptach css.

Jak inaczej zdefiniować zmienną $strona?
crocodillo
Skontaktuj się z obsługą klienta - najszybciej Ci pomogą
croc
Na moje oko problem tkwi w file_exists. Spróbuj usunąć ./ z argumentu tej funkcji, czyli:
  1. if( ! $strona OR ! file_exists('strony/'.$strona.'.php'))
crocodillo
Jeśli to jest błąd jak w temacie, czyli 500, to raczej nie wina skryptu, gdyż jest to wewnętrzny błąd serwera. Ja bym stawiał na problem z .htaccess. Upewnij się, że ostatnia masz pustą ostatnią linijkę w tym pliku. Możesz też usunąć całą zawartość .htaccess i sprawdzić jak wtedy działa. Może dostawca hostingu coś źle skonfigurował. Najlepszym i najszybszym sposobem będzie skontaktowanie się właśnie z nimi.
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.