kraken86
16.10.2011, 12:09:43
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
16.10.2011, 12:15:19
Skąd ma pobrać strona skoro linki masz zupełnie inne?
kraken86
16.10.2011, 12:27:23
strona pobiera z katalogu /strony
if (!$strona || !file_exists('./strony/' . $strona . '.php'))
croc
16.10.2011, 12:29:51
Masz .htaccess, który zamienia XXX.html na cośtam.php?strona=XXX?
kraken86
16.10.2011, 12:54:14
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
16.10.2011, 12:56:38
A jesteś pewien, że Twój nowy serwer obsługuje mod rewrite?
kraken86
16.10.2011, 13:02:51
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
16.10.2011, 13:46:14
Sprawdziłem serwer obsługuje tą funkcje.
Jeszcze raz wysłałem pik htaccess niestety bez rezultatu.
Jak pozbyć się tego błędu?
croc
16.10.2011, 13:49:31
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
16.10.2011, 14:11:35
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
16.10.2011, 16:55:26
Skontaktuj się z obsługą klienta - najszybciej Ci pomogą
croc
16.10.2011, 18:56:57
Na moje oko problem tkwi w file_exists. Spróbuj usunąć ./ z argumentu tej funkcji, czyli:
if( ! $strona OR
! file_exists('strony/'.$strona.'.php'))
crocodillo
16.10.2011, 19:12:51
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.