Domanda

Sto usando mod_rewrite per creare URL di SEO. Fondamentalmente la cosa funziona nel seguente modo: tutte le richieste rientrano nel campo di .htaccess e reindirizzati ad uno script php (diciamo transform.php). transform.php analizza SEO URL e la trasforma in un URL normale, poi comprende index.php, poi cattura di uscita (di index.php) dell'applicazione e utilizza espressioni regolari per convertire tutti gli URL normali URL SEO. Così il passo fondamentale è quello di rendere tutte le richieste passare attraverso transform.php. Il mio .htaccess è piuttosto lungo ma sono riuscito a limitarlo alle seguenti linee.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

Il problema si verifica con l'iniziale (root) URL: http://mysite.com/ . Quando digito http://mysite.com/ e sito si trova sul mio comp locali, tutto funziona bene. http://mysite.com/ è presa da .htaccess e inviati in transform.php per ulteriori elaborazioni. Tuttavia su un altro server questa linea non funziona (diciamo per http://mysite-other-server.com / ). Questa linea .htaccess semplicemente non prende la richiesta. Tutto funziona bene per http://mysite-other-server.com/index.php se.

Inoltre ho diversi siti su questo secondo server e alcuni di loro lavoro, mentre alcuni di loro non fanno. E 'come per alcuni di loro l'URL viene prima deliberato di http: // mysite-altro-server. com / index.php e poi gestita da .htaccess, mentre per gli altri l'URL non è stato risolto e offerte .htaccess con http://mysite-other-server.com/

Sono molto confuso e provato googling senza alcuna fortuna. Ogni aiuto è molto apprezzato.

È stato utile?

Soluzione

presumo che Apache è configurato per non accettare i file .htacces.

È necessario abilitare dalla configurazione httpd con l'impostazione AllowOverride.

http://httpd.apache.org/docs/2.0 /mod/core.html#allowoverride

Un'altra possibilità è che il server di produzione non è stata caricata mod_rewrite, controlla le direttive LoadModule per questo.

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