Przyjazny URL

0

Witam,
na wstępie zaznaczam ze pierwszy raz się bawię w "Przyjazne URL". No i oczywiście siedzę już od paru dni i nie mogę dojść do ładu... bo wiecznie coś nie działa. Testowałem 3 sposoby i dosłownie wielkie NIC!

Oto moje testy może gdzieś jest błahy błąd i pomożecie.

[b]TEST I[/b]
Tutaj już na początku po wpisaniu do pliku .htaccess kodu:

<?php
Options Indexes, Symlinks, Multiviews
?>

Wyskakuje błąd 500 Internal Server Error

plik test.php wyglądał tak lecz to chyba już bez znaczenia

<?php
$sklad_URL = explode('/', substr($_SERVER['PATH_INFO'], 1));

$_SERVER['PATH_INFO'] = (isset($_SERVER['PATH_INFO']) && 
$_SERVER['PATH_INFO'] != '/') ? $_SERVER['PATH_INFO'] : '/news';
$sklad_URL = explode('/', substr($_SERVER['PATH_INFO'], 1)); 

?>

[b]TEST II[/b]
Linki starą metoda działają a nowa pokazują brak pliku czyli błąd 404 Not Found

Kod .htaccess

<?php
RewriteEngine On
RewriteRule ^/test/(.*)/(.*) /test.php?id=$1&do=$2 [NE]
?>

Kod test.php

<?php
if($_GET['id'] == 'news'){
    echo "Zmienna 1 = {$_GET['id']}";
    if($_GET['do'] == 'pokaz'){
        echo "<br />Zmeinna 2 = {$_GET['do']}";
    }
}
if ($_GET['id'] == '') {
    echo "Strona główna<hr />";
}
?>
<hr />
<a href="test.php?id=news&do=pokaz">LINK stary</a><br />
<a href="test/news/pokaz/">LINK nowy</a><br />

Kolejny test
[b]TEST III[/b]
Linki starą metoda działają a nowa pokazują brak pliku czyli błąd 404 Not Found czyli jak w przykładzie II

Kod .htaccess

<?php
<Files test>  
  ForceType application/x-httpd-php
</Files>
?>

Kod test.php

<?php
if($_GET['id'] == 'news'){
    echo "Zmienna 1 = {$_GET['id']}";
    if($_GET['do'] == 'pokaz'){
        echo "<br />Zmeinna 2 = {$_GET['do']}";
    }
}
if ($_GET['id'] == '') {
    echo "Strona główna<hr />";
}
?>
<hr />
<a href="test.php?id=news&do=pokaz">LINK stary</a><br />
<a href="news/pokaz.html">LINK nowy</a><br />

Bardzo proszę o pomoc

0

co robi <?php wewnątrz pliku .htaccess? przecież to plik konfiguracyjny serwera www, a nie kod php.

0

nie ma tam php tylko na forum tak wkleiłem

0

To następnym razem wklejaj normalnie -_-
Proponuje rozwiązać to tak:

RewriteEngine On
RewriteRule ^test/(.*)/(.*)$ test.php?id=$1&do=$2

Ja zawsze robie to w ten sposób i działa bez problemu. Szczególnie należy pamiętać o tym że znak / na początku oznacza to że przechodzimy do głównego katalogu (czy tam wcześniejszego, nie pamiętam). Również informuje że jak już dajesz ^ to musi być $ na końcu formuły bo on uważa że to jest dalej ten sam ciąg. Co do przyjaznych URL to Google wolałoby widzieć to tak:

RewriteEngine On
RewriteRule ^test/(.*)/(.*).htm$ test.php?id=$1&do=$2
0

Zadziałało ale dopiero coś takiego:

RewriteEngine On
RewriteRule ^test/([0-9A-Za-z_,.-]*)/([0-9A-Za-z_,.-]*).html$ test.php?strona=$1&p=$2 [NC]

Teraz mam pytanie... jak zrobić by pliki graficzne oraz style miały poprawne SRC ?

Pozdrawiam

0

Dla kaaażdego stylu i obrazka ustawić $script path...
Jest to nieco tępa robota, ale przynosi efekty w pozycjonowaniu.
Coś w PHP z buforami kombinowałem kiedyś, ale już nie pamiętam tego projektu :P
Chodziło o to że brało się cały skrypt w jedno wielkie ob_start() i ob_end_flush(), a przed 'wypluwaniem' strony zmieniało wszystkie SRC za pomocą pętli.

0

aha a znalazłem na google coś takiego zęby wsadzić w sekcji head <base href="adres.pl">

i podziałało tylko ciekawe jak to działa na indexowanie?

0

Base nijak ma się do indeksowania, bo to zwykła część strony. Dzięki za przypomnienie tak BTW :P

0

z tym że to mało profesjonalne
po prostu powinieneś od początku dawać poprawne relatywne ścieżki, zaczynając od "/", wtedy by nie było problemu

1 użytkowników online, w tym zalogowanych: 0, gości: 1