Zdravím,
využil jsem snad všechny možnosti a stále nenacházím odpověď.
Mám navigaci (pro názornost není generována, ale je dána do pole), která pracuje se SEO, jenže pro SEO si nechávám zpracovat absolutní adresu a tad yje kámen úrazu. Na localhostovi to jede (můžu zadat 127.0.0.1 i localhost) ale když to zkusím zkušebně na wz.cz tak mi to hlásí stále error 404, ale ta stránka tam fyzicky je...
.htaccess
-----------------------
RewriteEngine On
RewriteRule ^([a-z-]+)/([a-zA-Z0-9-]+)/$ index.php?lang=$1&clanek=$2 [QSA,L]
.navigation.php
-----------------------
<?php
// Současná pozice stránek
$current_url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$current_server = "http://" . $_SERVER['SERVER_NAME'] . "/RSD";
echo $current_url . "<br>";
echo $current_server . "<br>";
echo "<img src=\"$current_server/modules/navigation/navigation.jpg\" alt=\"navigace\" />";
// Vytvožit pole s možnostmi navigace
$nav_options = array(
"Úvodní strana" => "$current_server/cz/uvodni-strana/",
"Portfolio firmy" => "$current_server/cz/portfolio-firmy/",
"Naše nabízené služby" => "$current_server/cz/nabizene-sluzby-nasi-firmou/",
"Reference grafické a psané" => "$current_server/cz/graficke-a-psane-reference/",
"Kontakt na nás" => "$current_server/cz/kontakt-na-nas/"
);
// Začni skládat navigaci
print("<!-- begin menu -->
<div id=\"navcontainer\">
<ul class=\"navi-left-ul\"> \n");
// Smyčka pro výběr možností - begin
foreach($nav_options as $key => $val){
// Pokud nejsme na současném odkazu, vytvoř odkaz
if($val != $current_url){
print(" <li class=\"navi-left-li\"><a class=\"navi-left\" href=\"$val\">$key</a> </li> \n");
}
// Pokud jsme na současném odkazu, nevytvářej link
else{
print(" <li class=\"navi-left-li\"><a class=\"navi-left-sel\">$key</a></li> \n");
}
} // Smyčka pro výběr možností - end
// Uzavři navigaci
print(" </ul> \n");
print("</div>\n<!-- end menu --> \n");
?>
Můžete tedy prosím napsat, jaké adresy Vám generátor menu vyhodí? Podle mě to musí například pro "Úvodní strana" vyrobit adresu "http://loiseleuria.unas.cz/RSD/cz/uvodni-strana/". Když vezmu v potaz ten mod rewrite, tak mi regulérní výraz ^([a-z-]+)/([a-zA-Z0-9-]+)/$ nesedí. Fungovalo by to bez RSD?
Na localhostovi zadám a generují se mi adresy v tomto tvaru a fungují,
http://127.0.0.1/RSD/cz/uvodni-strana/
http://127.0.0.1/RSD/cz/portfolio-firmy/
atd.
Ovšem na wz.cz mi již nefungují, přestože jsem nic neměnil.
Rozjedu maximálně http://loiseleuria.unas.cz/RSD/ a dostanu se na index.php a přestože to vygeneruje správné odkazy (viz. ty co josu napsány výše) tak po kliknutí na ně se strának dostane na error 404.
>Fungovalo by to bez RSD?
Fungovalo, ale prvně to zkouším "na nečisto", takže to je ve složce RSD, proto je to zde přidáno (root webu se mi posune do adresáře RSD)
PSko: Na webu nyní není funkční příklad pokud jste to zkoušel, radši jsem ho stáhnul.
Ještě mně napadlo to takhle napsat:
------------------------------------------------------------------
Normálně to bude:
$current_server = "http://" . $_SERVER['SERVER_NAME'];
Vrátí http://example.com(*)
Ale protože .htaccess nechcu zatím házet natvrdo do rootu a chcu si to zkusit nanečisto, dal jsem .htaccess, index.php atd. do složky RSD. Z toho plyne tohle:
$current_server = "http://" . $_SERVER['SERVER_NAME'] . "/RSD";
vrátí: http://example.com/RSD(*)
(*) nahradí se -> generují se tu už odkazy např.
/cz/uvodni-strana/
/cz/kontakt-na-nas/
Takže ve finále mám adresu:
ostrou: http://example.com/cz/uvodni-strana/
cvičnou: http://example.com/RSD/cz/uvodni-strana/
<HTML>Vyzkousejte:
.htaccess
-----------------------
RewriteEngine On
RewriteRule ^([a-z-]+)/([a-zA-Z0-9-]+)/$ /index.php?lang=$1&clanek=$2 [QSA,L]
tedy / pred index.php</HTML>
Pokud si vlozil .htaccess do korenoveho adresare, tak se to neposouva. Musis jej mit v te slozce RSD.
Jinak mnohem lepsi by mozna bylo:
RewriteRule ^(.+)/(.+)/$ /index.php?id=$1&akce=$2 [L,QSA,NC]
Pro Richarda - pohrál jsem si ještě s umístěním odkud tahám server a současný název url, dal do .htaccess lomítko a funguje to - díky moc ;-)
Pro gismo: snad se teďka nepletu, ale NC je nerozlišovat velikost písmen a já chcu vše malýma...