2010-10-27 11 views
5

Voglio fare una copia statica di un sito, mantenendo gli URL esistenti. Il problema è che gli URL sembravano:apache, consentire nomi file con '?'

http://mysite/index.php?id=XXX

e Apache non vuole trovare il file "index.php id = XXX?". Invece, interpreta la richiesta come il file "index.php" con la query "id = XXX".

Come posso chiedere ad Apache di interrompere la gestione del punto interrogativo?


Infine, la mia soluzione:

1) rinominare i file da "index.php id = XXX?" A "index.php_id = XXX"

2) Aggiungi al .htaccess:

RewriteEngine On 
RewriteCond %{ENV:REDIRECT_STATUS} ="" 
RewriteCond %{QUERY_STRING} !="" 
RewriteRule ^(.*)$ $1_%{QUERY_STRING} [L] 

risposta

5

Escape la ? come %3f: http://www.example.com/index.php%3fid=XXX.

Se si elenca il file in una directory su cui sono presenti indici, Apache genererà correttamente i collegamenti di questo formato. È necessario, tuttavia, riscrivere i collegamenti nelle pagine esistenti.

Problemi correlati