2009-12-01 6 views
0

J'ai un doute sur la réécriture d'URL en utilisant apache mod_rewrite. Je suis un novice en mod_rewrite et je n'ai aucune expérience en regex.Question sur la réécriture d'url en utilisant apache mod_rewrite

Ce que je veux faire est de:

Rewrite / Pour /web/content/public/

Rewrite /clients/ Pour /web/contenu/clients/

Comment puis-je atteindre au-dessus des choses.

J'ai essayé:

<IfModule mod_rewrite.c> 

    Options +FollowSymLinks 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 

    RewriteRule ^/clients/$ web/content/clients/ [L] 
    RewriteRule ^(.*)$ web/content/public/$1 [L] 
    </IfModule> 

Mais il ne fonctionne pas. Que puis-je faire?

Répondre

0

^(.*)$ inclut le slash. N'incluez donc pas la barre oblique dans le motif réécrit. Mais incluez une barre oblique à la tête de votre motif réécrit. Vérifiez le journal d'accès et le journal des erreurs d'apache pour voir quel type d'URL de requête revient.

S'il vous plaît check the documentation, en particulier la liste étiquetée « Voici toutes les combinaisons possibles de substitution et leur signification: »

0

Essayez ceci:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteRule^- [L] 
RewriteRule ^/clients/$ web/content/clients/ [L] 
RewriteRule ^/(.*)$ web/content/public/$1 [L] 

Et si vous voulez utiliser que les règles dans un fichier .htaccess , supprimez la barre oblique des motifs.

Questions connexes