Autor Zpráva
wordik
Profil *
Dobrý den, mám tyto 3 pravidla pro hezčí URL, ovšem překrývají se, jelikož potřebuju pravidlo pro nahrazení &neco= a &neco2= v odkazu stránky index.php z: index.php?neco=145&neco2=ano -> /145/ano

ale to stejné potřebuji i v souboru account.php, z account.php?neco=203&neco=info ->/acccount/203/info

ještě přikládám kompletní .htaccess kód, který ovšem nefunguje jak má, jelikož se jednotlivá pravidla překrývají, půjde to nějak vyřešit?
RewriteEngine On
RewriteBase /

# /example.php => /example
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([_a-zA-Z0-9\-]+)/?$ $1.php [L,QSA]

# account.php?v1=user-bar => account/user-bar
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^account/([_a-zA-Z0-9\-]+)/?$ account.php?v1=$1 [L,QSA]

# account.php?v1=statistics&v2=race => account/statistics/race
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^account/([_a-zA-Z0-9\-]+)/?([_a-zA-Z0-9\-]+)/?$ account.php?v1=$1&v2=$2 [L,QSA]

# account.php?v1=user-bar&v2=1&v3=5 => account/user-bar/1/5
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([_a-zA-Z0-9\-]+)/?([_a-zA-Z0-9\-]+)/?([_a-zA-Z0-9\-]+)/?$ account.php?v1=$1&v2=$2&v3=$3 [L,QSA]

# index.php?v1=new&v2=add=> /new/add
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([_a-zA-Z0-9\-]+)/?([_a-zA-Z0-9\-]+)/?$ index.php?v1=$1&v2=$2 [L,QSA]

# index.php?v1=new&v2=delete&v3=1 => /new/delete/1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^index/([_a-zA-Z0-9\-]+)/?([_a-zA-Z0-9\-]+)/?([_a-zA-Z0-9\-]+)/?$ index.php?v1=$1&v2=$2&v3=$3 [L,QSA]

# forgot-password.php?v1=new-password&v2=$1 => forgot-password/new-password/9e107d9d372bb6826bd81d3542a419d6
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^forgot-password/new-password/?([_a-zA-Z0-9\-]+)/?$ forgot-password.php?v1=new-password&v2=$1 [L,QSA]

Díky předem za pomoc
Kajman_
Profil *
Zkuste odstranit otazníky za vnitřními lomítky. Také by mělo pomoci uvádět nejprve co nejkonkrétnější pravidla a pak teprve obecná.

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RwriteRule .* - [L]

# account.php?v1=statistics&v2=race => account/statistics/race
RewriteRule ^account/([_a-zA-Z0-9\-]+)/([_a-zA-Z0-9\-]+)/?$ account.php?v1=$1&v2=$2 [L,QSA]

# account.php?v1=user-bar => account/user-bar
RewriteRule ^account/([_a-zA-Z0-9\-]+)/?$ account.php?v1=$1 [L,QSA]

# index.php?v1=new&v2=delete&v3=1 => /new/delete/1
RewriteRule ^index/([_a-zA-Z0-9\-]+)/([_a-zA-Z0-9\-]+)/([_a-zA-Z0-9\-]+)/?$ index.php?v1=$1&v2=$2&v3=$3 [L,QSA]

# forgot-password.php?v1=new-password&v2=$1 => forgot-password/new-password/9e107d9d372bb6826bd81d3542a419d6
RewriteRule ^forgot-password/new-password/([_a-zA-Z0-9\-]+)/?$ forgot-password.php?v1=new-password&v2=$1 [L,QSA] 

# account.php?v1=user-bar&v2=1&v3=5 => account/user-bar/1/5
RewriteRule ^([_a-zA-Z0-9\-]+)/([_a-zA-Z0-9\-]+)/([_a-zA-Z0-9\-]+)/?$ account.php?v1=$1&v2=$2&v3=$3 [L,QSA]

# index.php?v1=new&v2=add=> /new/add
RewriteRule ^([_a-zA-Z0-9\-]+)/([_a-zA-Z0-9\-]+)/?$ index.php?v1=$1&v2=$2 [L,QSA]

# /example.php => /example
RewriteRule ^([_a-zA-Z0-9\-]+)/?$ $1.php [L,QSA]
wordik
Profil *
Děkuji moc, funguje skvěle ;-)

Jen v kódu byla chybička nebo spíše překlep:
RewriteRule .* - [L]

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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