2010-11-13 5 views
0

Je suis en train de réécrire tout SAUF les deux URLs ci-dessous à google.com (pourrait être n'importe quelle URL externe, mais google pour les tests).mod_rewrite tout sauf deux URL

w3ink.com/wp/folder/wp-admin 
w3ink.com/wp/folder/schedule-the-truck 

va aux pages sur le site.

tout le reste va à google.com

Voici ce que j'ai jusqu'à présent dans mon fichier .htaccess dans documentRoot:

RewriteCond %{REQUEST_URI} !^/wp/folder/schedule-the-truck$ 
RewriteCond %{REQUEST_URI} !^/wp/folder/wp-admin$ 
RewriteRule .* "http://google.com" [R=301,L] 

Il ne fonctionne tout simplement pas. Tout est transmis à google.com, même les deux pages dans mes états de condition négatifs.

Répondre

1

Vous devez activer la consignation de débogage mod_rewrite. Cela peut probablement vous montrer que pour les fichiers .htaccess, le REQUEST_URI ne commence pas par une barre oblique. (Et même si mon hypothèse est fausse, il vous montrera toutes les étapes qui se produisent, ce qui devrait vous donner une idée de pourquoi ils se produisent.

+0

sur la base de ce que je lis à propos REQUEST_URI, il ne commence par une barre oblique. le problème est que je suis dans une commune l'environnement d'hébergement et je ne suis pas autorisé à accéder au journal de débogage mod_rewrite. Les informations contenues dans mon fichier .htaccess ne sont même pas évaluées. . . – rciiipo

+0

Donc vous pensez que les règles normales sont évaluées, mais seulement cette règle avec ses conditions ne l'est pas? Dans ce cas, vous pouvez essayer la combinaison suivante: 'RewriteCond% {REQUEST_URI} (. *)' Avec 'RewriteRule. http://www.google.com/search?q=%1 [R, L] '. Alors vous savez au moins ce qu'il y a dans 'REQUEST_URI'. –

0

Essayez de retirer le $ à la fin des conditions de ré-écriture.

Parce que wp-admin est un répertoire, le serveur redirigé vers wp-admin/. Ensuite, votre règle de réécriture redirigée que pour http://www.google.com/.