Sposób przeglądania "podstron"

0

Witam.
Spotkałem się z takim czymś: http://strona.pl/news/123321/
Jak takie coś jest robione?
Pierwszym sposobem jest utworzenie katalogu o numerze newsa a w nim np. index.
Ale nie o to mi chodzi.
Dowiedział bym się tego korzystając z google - tylko jak sie wie co sie szuka :-/
Słyszałem też o takim właśnie sposobie zamiast np. http://strona.pl/?news=123321.
Proszę o wtajemniczenie mnie w tą technologię :-)

0

Nie są tworzone żadne katalogi, tu po prostu działa mod_rewrite.

Jeśli nie masz dostępu do mod_rewrite na serwerze, możesz skorzystać też z $_SERVER['PATH_INFO'] (PHP) - wtedy będziesz miał postać dla linków np.:

http://strona.pl/index.php/news/123

0

Robie coś takiego:
w pliku .htaccess

RewriteEngine On
RewriteRule ([0-9]+) /index.php?what=$1

Tworze plik index.php i cos sobie tam wpisuje...
wywala mi:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

????

/Używam wamp5/

0

Masz nieskonfigurowane mod_rewrite. Poczytaj.

0

Skonfigurowalem :-[
G**no piszą o tym [!!!]
LoadModule rewrite_module modules/mod_rewrite.so - to dodałem(opisali o tym)
RewriteEngine on - to dodałem w <directory>

I nic dalej nie idzie - nie uruchamia sie apacha.
Po wyrwaniu kilku włosów dopisałem takie coś:
AddModule mod_rewrite.c
I ruszyło, a o tym nikt nic nie napisał :-[

W kodzie mam
echo "what: ".$_GET['what'];
I nic mi nie wyświetla :-[
Co jest?

0

Dla Wamp'a z menu wybierz Apache modules->rewrite_module - to tyle, jeśli chodzi o konfigurację w wampie ;)
Internal Server Error może być spowodowany tym, że w pliku .htaccess ostatnia linijka musi być pusta... po prostu po ostatnim wpisie nie zapomnij dać entera.

0

Nie musi to być koniecznie mod_rewrite - w takim Django na przykład linki się definiuje wyrażeniami regularnymi bezpośrednio w kodzie, wygląda to mniej więcej tak:

urlpatterns = patterns('',
                       (r'^hello/$', 'site.views.hello'),
                       (r'^page/$', 'site.views.pages'),                       
                       (r'^page/(\d+)/$', 'site.views.page_details'),                       
                       (r'^page/(\d+)/edit$', 'site.views.page_edit'),                       
)

Widoki dostają te złapane grupy jako parametry.

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