Diskuze: Apache: mod_rewrite

Volná diskuze Apache: mod_rewrite

Avatar
thirdknown
Člen
Avatar
thirdknown:

Ahoj všem,
dělám stránky v php. Používám EasyPHP a s tím mod_rewrite. Rewrite mě funguje jenom pokud to v .htaccess takhle:

Options +FollowSymlinks
RewriteEngine on
RewriteRule uvodni-stranka ?article=uvodni-stranka
RewriteRule informace-o-lankach index.php?arti­cle=informace-o-lankach

Jenže bych rád využíval i proměnné:

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([^/]
)$ /index.php?ar­ticle=$1 [L]*

Jenže to mě vůbec nechce fungovat. Vygeneroval jsem si to na http://www.generateit.net/mod-rewrite/ .

Jenom upřesním:

  1. V httpd.conf mám ODkomentovanej řádek LoadModule rewrite_module modules/mod_rew­rite.so
  2. Všude, kde je AllowOverride mám All

Ještě mi přijde divná jiná věc: v index.php si dám vypsat toto:
$_GET['article']. A objeví se index.php, což je ale blbost. Obsah indexu article v get musí přeci bejt jinej než jméno souboru index.php

Tak tolik.
Díky za všechny rady...

Pavel

 
Odpovědět 27.2.2013 15:20
Avatar
thirdknown
Člen
Avatar
thirdknown:

Už jsem to vyřešil

Options +FollowSymLinks
RewriteEngine on
# remove trailing slash
RewriteRule ^(.*)/$ /$1 [L]

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /index.php?ar­ticle=$0 [L]

Ale ještě mě napadá, proč to v adrese požadavku vždycky chtelo lomeno (/) a nikdy to nešlo bez? Neboli proč nemohlo v .htaccess to být bez lomena?

Díky

 
Nahoru Odpovědět 27.2.2013 19:51
Avatar
thirdknown
Člen
Avatar
thirdknown:

Případně, kdyby to někomu pomohlo, tak tohle funguje i s obrázkama, stylama apod. až do tří parametrů v adrese.
Rozchozeno na EasyPHP 12.1

Options +FollowSymLinks
RewriteBase /
RewriteEngine on
# imgs je slozka, ktera neni zahrnuta, neboli imgs znamena to, co znamena
RewriteRule ^imgs/(.)$ imgs/$1 [L]
RewriteRule ^(.
)/$ /$1 [L]
RewriteRule ^(.)/(.)/$ /$1/$2 [L]
RewriteRule ^(.)/(.)/(.)/$ /$1/$2/$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]
)$ /index.php?a=$1 [L]
RewriteRule ^([^/])/([^/])$ /index.php?a=$1&b=­$2 [L]
RewriteRule ^([^/])/([^/]­)/([^/]*)$ /index.php?a=$1&b=­$2&c=$3 [L]
# Nezapomenout dát před obrazky, styly atd., ktery nemaj bejt zahnuty
# do podstrkavani / (lomeno)

 
Nahoru Odpovědět 28.2.2013 21:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.