2009-10-24 6 views
0

Dans le fichier httpd.conf j'ai AllowOverride FileInfo. Dans le fichier .htaccess au niveau supérieur de mon serveur web avec tous les autres fichiers, j'ai ceci:Apache Url Réécriture ne fonctionnera pas

RewriteEngine On 
RewriteRule ^downloads/?$ index.php?page=downloads [L,NC] 

Mais cela ne fonctionne pas. mywebsite/downloads et mywebsite/downloads/toujours donner un 404 non trouvé. Une idée pourquoi? Merci. (mywebsite/index.php? page = téléchargements fait travail).

Et je redémarre apache chaque fois que je le change.

Et quand je mets le code ci-dessus dans httpd.conf, le site ne chargera même pas du tout, juste une roue de safari tournant à vide pour toujours.

Son bien si je fais juste RewriteEngine On, mais si je fais quelque chose d'autre (RewriteBase, RewriteRule), les âges de dépenses du navigateur web essayant de charger et enfin donner cette erreur:

Safari can’t open the page “ http://mk12.gotdns.com/ ” because the server where this page is located isn’t responding.

Quelqu'un a une idée de ce faux?

EDIT: Je peux faire, par exemple, des fichiers css interdits avec réécriture, et cela fonctionne, mais toute règle qui va des téléchargements à index.php? Page = downloads fait que le serveur ne répond pas (voir ci-dessus) , peu importe la page, le site ne se chargera pas du tout. Des idées..?

+0

lorsqu'une règle de réécriture semble correcte mais ne fonctionne pas, j'ajoute un [R] à la fin. si la redirection ne se produit pas, la première partie est incorrecte. si la redirection s'est produite mais pas comme prévu, la deuxième partie est incorrecte – w35l3y

+0

J'ai ajouté l'indicateur R et son erreur 404. – mk12

+0

Est-ce que ça dit que 'download' est 404 ou' index'? – random

Répondre

0

Cela a fonctionné !! Je mettais le code au mauvais endroit. C'était dans httpd.conf, mais à la fin. Déplacez-le dans < Répertoire > et son bien. Merci de votre aide!

EDIT: Aussi, j'ai trouvé que cela ne fonctionnera pas si les drapeaux sont comme ceci: [L, NC]. Il doit être [L,NC] (sans espaces). Donc, les deux problèmes où il n'était pas à l'intérieur < répertoire "/ Bibliothèque/WebServer/Documents" >, et il y avait des espaces entre les drapeaux. J'espère que cela aidera quelqu'un d'autre à l'avenir.

0

Avez-vous fatigué d'ajouter une barre oblique devant le « télécharger » comme ci-dessous

RewriteRule ^/downloads/?$ index.php?page=downloads 

EDIT: Essayez le code ci-dessous:

RewriteEngine On 
RewriteBase/
RewriteRule ^downloads/?$ /index.php?page=downloads 
+0

Cela n'a pas fonctionné. – mk12

+0

Essayez de supprimer complètement la partie "^ /" (juste pour tester bien sûr). Si cela fonctionne, vous devrez peut-être définir votre chemin de base sur "/". – BYK

+0

J'ai déjà essayé ça. – mk12

1

La meilleure façon de règles de réécriture de débogage est de permettre réécrire la journalisation afin que vous puissiez voir ce qui ne va pas.

+0

Dans le fichier/private/var/log/apache2/error_log, j'obtiens ceci: '[Sat Oct 24 16:42:05 2009] [erreur] [client 10.0.1.1] Le fichier n'existe pas:/Bibliothèque/WebServer/Documents/téléchargements » – mk12

+0

Cela signifie que votre motif n'est pas apparié. – BYK

0

Je voudrais essayer de supprimer la barre oblique et le point d'interrogation après les téléchargements, et la barre oblique avant index.php.

RewriteEngine On 
RewriteBase/
RewriteRule ^downloads$ index.php?page=downloads. 
+1

Je suppose que la période à la fin est une faute de frappe? – mk12

+0

Et toujours ne fonctionne pas. – mk12