首页 > 解决方案 > 重定向到 index.php 并删除尾部斜杠 .htaccess

问题描述

这里似乎有很多这样的问题,但找不到适合我当前代码的答案:

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ public/index.php [QSA,L]

这会将所有内容重定向到public/index.php可以正常工作的所有内容,但我想摆脱尾部斜杠,这样example.com/foo/就变成了example.com/foo

标签: apache.htaccessmod-rewriteserverwebserver

解决方案


您可以在当前规则之前插入尾部斜杠删除代码:

RewriteEngine On

## Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/+$
RewriteRule ^ %1 [R=301,NE,L]

## forward all requests to public/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ public/index.php [L]

推荐阅读