J'ai un défi en utilisant Apache.Htaccess URL réécrire question
Dans mon fichier .htaccess Je voudrais convertir des demandes similaires:
url/portfolio/filename.htm
à:
url nom
Des preneurs? Merci pour votre temps
J'ai un défi en utilisant Apache.Htaccess URL réécrire question
Dans mon fichier .htaccess Je voudrais convertir des demandes similaires:
url/portfolio/filename.htm
à:
url nom
Des preneurs? Merci pour votre temps
Quelque chose comme ça devrait fonctionner, même si je ne l'ai pas testé.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)/portfolio/(.*)\.htm$ $1?$2 [PT,L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
Alec, merci beaucoup pour la réponse rapide. Je l'ai essayé et ça ne semble pas fonctionner, alors j'ai utilisé un testeur de regex pour voir ce qui pourrait être en place ... est-ce qu'il y a une chance de 'collision avec le délimiteur' avec ça? Thx D –
Vous avez plusieurs choix, selon la manière dont vous souhaitez que l'URL apparaisse aux visiteurs (et aux moteurs de recherche).
Si vous souhaitez que l'URL visible à l'extérieur reste url/portfolio/filename.htm
, la solution Alec a fonctionné après avoir supprimé les deux lignes RewriteCond
.
RewriteEngine On
RewriteRule ^(.*)/portfolio/(.*)\.htm$ $1?$2 [PT,L]
Si d'autres paramètres pourraient être dans la chaîne de requête et que vous voulez préserver ceux-ci, ajouter QSA
aux options entre parenthèses à la fin de la règle.
Si vous voulez que les gens à l'extérieur pour voir url?filename
au lieu, changer la règle:
RewriteRule ^(.*)/portfolio/(.*)\.htm$ $1?$2 [L,R]
qualification Même sur les autres paramètres de la requête applique.
Si cela ne vous aide toujours pas, je vous suggère d'activer la journalisation des réécritures et de rechercher dans ce journal d'autres indices. Postez-les ici et quelqu'un vous aidera. Vous devrez peut-être mettre cette partie dans httpd.conf
. Mon Apache n'a pas aimé dans .htaccess
.
RewriteLog ...path...
RewriteLogLevel 3 # you'll regret anything higher
Cela devrait fonctionner:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^portfolio/(.+)\.htm$ index.php?$1 [NC,L]
ou si vous voulez changer visiblement il:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^portfolio/(.+)\.htm$ /?$1 [R,NC,L]
Le second ressemblerait example.com/?filename à la utilisateur, alors que le premier ressemblerait à example.com/portfolio/filename.htm.
Espérons que ça aide.
Veuillez être un peu plus précis. Que signifie "url" dans votre exemple? Et le "portefeuille" est-il fixé? – Gumbo