Domanda

uffa .. mod_rewrite mi fa sentire stupido. Solo che non ho ancora avvolto il mio cervello intorno ad esso. : /

ho questo URL:

http://example.com/a/name/

... che voglio sottolineare qui:

http://example.com/a/index.php?id=name

... dove name è quello che si sta passato al index.php come argomento id.

tutto quello che ho provato risultati sia in un 404 o un 500 ..: (

È stato utile?

Soluzione

Per iniziare si off:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L]

Se una riscrittura esercitazione non funziona per voi, provare un altro .

Modifica: esclusi index.php come da suggerimento di Gumbo

Altri suggerimenti

Se si desidera che la barra finale per essere opzionale, è necessario escludere il file che si sta riscrivendo la richiesta. In caso contrario si avrà una bella ricorsione infinita.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/a/index\.php$
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L]

Ecco qualsiasi richiesta che inizia con /a/… ma non /a/index.php viene riscritto per /a/index.php.

Ma se la barra finale è obbligatoria, non v'è alcuna necessità di escludere il file di destinazione:

RewriteEngine on
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]

Forse qualcosa sulla falsariga di

RewriteEngine on
RewriteBase /a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA]

farebbe il trucco.

vi consiglio di dare un'occhiata a questo URL:

http://www.dracos.co.uk/code/ apache-rewrite-problema /

Le soluzioni presentate funzioneranno, ma ci sono alcuni avvertimenti spiegate nella URL, per quanto riguarda principalmente? e # negli URL stessi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top