Autor Zpráva
Josef Přerovský
Profil
Zdravím, mám prosbu.
V .htaccess souboru mám:
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$/    /$1.php    [L]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^.]+)$/    /$1.html    [L]
 
RewriteRule ^([a-zA-Z0-9\-]+)$ $1.php
RewriteRule ^profile/(.*)$ profile.php?nick=$1 [QSA]

RewriteRule ^detail/(.*)$ detail.php?id=$1 [QSA]

RewriteRule ^server/(.*)$ status/lgsl_files/lgsl_details.php?id=$1 [QSA]
A když dám domena/server/1 tak to ukáže: LGSL PROBLEM: INVALID SERVER ' : : 0 : 0 : 0'

Používám LGSL a nevím, kde by mohl být problém.
Poradí někdo? Děkuji :)
Ikki
Profil
No dle všeho ti .htaccess nepředává hodnotu do kódu tak jak by měl, tedy to neurčí že se jedná o server #1
Keeehi
Profil
Josef Přerovský:
Nemá být v url náhodou s místo id? To je formát url který se mi podařilo na netu najít.
RewriteRule ^server/(.*)$ status/lgsl_files/lgsl_details.php?s=$1 [QSA]
Ikki
Profil
Keeehi:
Záleží jakou má verzi, ale většinou se využívá "s" jako "server", alespoň u verze Standalone.
Josef Přerovský
Profil
Zkoušel jsem to právě se s a výsledek je stejný...
Keeehi
Profil
Další věcí je, že proměnná $lgsl_server_id se nenastavuje v lgsl_files/lgsl_details.php ale v index.php. Viz
global $output, $lgsl_server_id;

  $output = "";

  $s = isset($_GET['s']) ? $_GET['s'] : "";

  if     (is_numeric($s)) { $lgsl_server_id = $s; require "lgsl_files/lgsl_details.php"; }
  elseif ($s == "add")    {                       require "lgsl_files/lgsl_add.php";     }
  else                    {                       require "lgsl_files/lgsl_list.php";    }

  echo $output;

  unset($output);

Takže v rewrite by měl být jiný soubor.
RewriteRule ^server/(.*)$ status/index.php?s=$1 [QSA]
Josef Přerovský
Profil
<?php
//------------------------------------------------------------------------------------------------------------+
  header("Content-Type:text/html; charset=utf-8");
//------------------------------------------------------------------------------------------------------------+

//------------------------------------------------------------------------------------------------------------+
  global $output, $lgsl_server_id;

  $output = "";

  $s = isset($_GET['s']) ? $_GET['s'] : "";

  if     (is_numeric($s)) { $lgsl_server_id = $s; require "lgsl_files/lgsl_details.php"; }
  elseif ($s == "add")    {                       require "lgsl_files/lgsl_add.php";     }
  else                    {

  unset($output);
  require "lgsl_files/lgsl_list.php"; 
echo $output;

  unset($output);
  $output = "";
  }

  
//------------------------------------------------------------------------------------------------------------+
?>
Prave ze je to ta promenna s


Vysledek:

Tato stránka nefunguje
Web xxxxx momentálně tento požadavek nemůže zpracovat.
Keeehi
Profil
Prave ze je to ta promenna s
Vždyť nikdo netvrdil že není. Jen jsem ještě v [#6] dodal, že kromě toho že tam nemá být id ale s tak je to přesměrované na špatný soubor. V souboru lgsl_files/lgsl_details.php se pracuje s proměnnou $lgsl_server_id Ve které má být právě to číslo co určuje vybraný server. V tomto souboru se ale tato proměnná nikde nenastavuje. Jediné místo v celém projektu, kde se do proměnné $lgsl_server_id něco přiřazuje je soubor index.php, který tu hodnotu bere z parametru s. Takže RewriteRule ^server/(.*)$ status/index.php?s=$1 [QSA] by mělo být správně.

Tato stránka nefunguje
Web xxxxx momentálně tento požadavek nemůže zpracovat.
Při určitém nastavení serveru se může taková chyba zobrazit když nastane problém v PHP. Je tedy možné, že díky správnému nastavení přesměrování se PHP posunulo ve skriptu někam dále a tam narazilo na chybu. Což klidně může být třeba jen problém s připojením k databázi. Podívej se tedy buď do error logu a nebo si zapni zobrazování chyb. Druhou možností je nějaký překlep v htaccessu který "odstřelí" server.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0