Comment supprimer le slash sur le répertoire dans htaccess?

J’ai un dossier configuré comme ça:

/blog/blog-post-name/post-content.txt

J’ai une autre page à la racine de mon site Web qui inclura post-content.txt en incluant le nom du répertoire dans une chaîne de requête comme ceci:

/blog.php?path=blog-post-name

Cependant, pour que l’URL soit plus belle, j’aimerais que les utilisateurs puissent accéder à la publication en allant sur un lien ci-dessous:

/ blog / blog-post-name

J’ai créé un fichier htaccess montré ci-dessous pour redirect en interne vers l’URL avec une chaîne de requête.

RewriteEngine on # if not a file RewriteCond %{REQUEST_FILENAME} !-f # and if the directory exists RewriteCond %{REQUEST_FILENAME} -d # take old folder and append to query ssortingng RewriteRule ^blog/(.*)$ blog/post.php?path=$1 [NC,L] 

Le problème est que, comme il s’agit en fait d’un répertoire, il souhaite append une barre oblique. Je pourrais utiliser DirectorySlash off mais j’ai lu que cela présente des problèmes de sécurité . Existe-t-il un moyen plus sûr de redirect un répertoire vers un fichier ou est-ce simplement une mauvaise idée en général?

Pour supprimer une barre oblique de fin pour un répertoire, utilisez:

 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [R=301,L] 

Si vous avez un problème avec ce qui précède, vous pouvez essayer ceux-ci:

 RewriteEngine on RewriteRule (.+)/$ /example/$1 [L,R=301] 

Troisième option:

 RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301]