Domanda .htaccess per l'URL PDF


Ho una struttura chiamata /pdf/ dove sono archiviati i PDF generati. Sto cercando di utilizzare .htaccess per indirizzare i visitatori alla cartella PDF.

Ho questa regola nel mio file .htaccess:

RewriteEngine On
RewriteBase /
RewriteRule (.*) index.php?page=$1.html
RewriteRule ??? for pdf??

(Notare la ??? marchi ...)

Quando provo ad accedere all'URL /manual_chap_1 funziona. Ma quando ci provo /pdf/manual_chap_1 non sembra funzionare. Ecco alcuni output che vedo:

$_GET[page] => index.php.html

Voglio essere in grado di generare il file PDF, se il file PDF non esiste nella posizione richiesta, e quindi, voglio che carichi una pagina HTML.


12
2018-02-02 00:02


origine


risposte:


Benvenuto in StackOverFlow, prova questo:

RewriteEngine On
RewriteBase /

RewriteRule ^pdf/([a-z0-9\-_\.]+)$ pdf.php?file=$1 [L,NC,QSA]

RewriteCond %{REQUEST_URI} !^/pdf
RewriteRule ^([a-z0-9\-_\.]+)/?$ index.php?page=$1.html [L,NC,QSA]

L: Il flag [L] fa in modo che mod_rewrite interrompa l'elaborazione del set di regole. Nella maggior parte dei contesti, ciò significa che se la regola corrisponde, non verranno elaborate ulteriori regole. Ciò corrisponde all'ultimo comando in Perl o al comando break in C. Utilizzare questo flag per indicare che la regola corrente deve essere applicata immediatamente senza considerare ulteriori regole.

QSA: Quando l'URI di sostituzione contiene una stringa di query, il comportamento predefinito di RewriteRule è quello di eliminare la stringa di query esistente e sostituirla con quella appena generata. L'utilizzo del flag [QSA] fa sì che le stringhe di query vengano combinate.

NC: L'uso del flag [NC] fa sì che RewriteRule sia abbinato in modo non sensibile alla distinzione tra maiuscole e minuscole. Cioè, non importa se le lettere appaiono come maiuscole o minuscole nell'URI abbinato.

Inoltre, consiglierei di utilizzare i trattini anziché il carattere di sottolineatura.


12
2018-02-02 00:06