从htaccess中的目录中删除尾部斜杠

问题描述 投票:5回答:2

以下是我的目录结构

Root/
    index.php
    contact.php
    projects.php
                /index.php
                /project1.php
                /project2.php

我已经进行了重写,从所有文件名中删除了.php扩展名。它工作正常,可以从www.website.com/projects/project2.php

访问www.website.com/projects/project2

我也希望能够以www.website.com/projects/index.php身份访问www.website.com/projects

我设法编写了一个规则,当我键入www.website.com/projects/时,会将URL重写为www.website.com/projects

但是,我无法摆脱最后一个斜杠。

[请注意,我对此并不十分了解。大部分是我在互联网上找到的。我到处环顾了很多,但到目前为止没有任何工作。

这里是代码:

Options +FollowSymLinks -MultiViews

RewriteEngine on

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

RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^projects$ /projects/index.php [L,E=LOOP:1]
.htaccess slash
2个回答
12
投票

这是由mod_dir and the DirectorySlash directive引起的。它将自动301重定向对缺少尾部斜杠的目录的请求。这解决了信息泄露安全问题(在上面的链接中进行了描述),即使在存在索引文件(例如index.php)的情况下,该问题也会列出目录内容。因此,如果关闭此功能,请请特别注意目录


0
投票

如果您想删除尾部的斜杠,这将很方便

© www.soinside.com 2019 - 2024. All rights reserved.