【问题标题】:Removing The Trailing Slash from a directory in htaccess从 htaccess 中的目录中删除尾部斜杠
【发布时间】:2013-04-30 17:45:07
【问题描述】:

以下是我的目录结构

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

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

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

我已经编写了一条规则,当我输入www.website.com/projects 时,它会将网址重写为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]

【问题讨论】:

  • 你想用这个来完成什么:RewriteRule ^([^\.]+)$ $1.php [NC,L]?

标签: .htaccess slash


【解决方案1】:

这是由mod_dir and the DirectorySlash directive 引起的。它将自动对缺少尾部斜杠的目录进行 301 重定向请求。这解决了一个信息泄露安全问题(在上面的链接中描述),即使有索引文件(例如index.php)也会列出目录内容。因此,如果您关闭此功能,要非常小心您的目录。如果您关闭了目录索引,那么这不是什么大问题。

您可以使用以下命令关闭目录斜杠:

DirectorySlash Off

您可以使用选项关闭目录索引:

Options -Indexes

然后,您需要让您的项目规则您的 php 扩展规则之前:

Options +FollowSymLinks -MultiViews -Indexes

DirectorySlash Off

RewriteEngine on

RewriteRule ^projects$ /projects/index.php [L,E=LOOP:1]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

【讨论】:

  • DirectorySlash 关闭时出现 403 禁止
【解决方案2】:

如果你想删除斜杠,这会派上用场

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)$
RewriteRule ^(.*)$ https://mydomainname.com/$1 [R=301,L]

这个规则的解释和我们想要添加斜杠时的解释是一样的,只是相反。我们还可以指定我们不想应用此规则的特定目录。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !directory/(.*)$ 
RewriteCond %{REQUEST_URI} !(.*)$
RewriteRule ^(.*)$ https://mydomainname.com/$1 [R=301,L]

Source

【讨论】:

    猜你喜欢
    • 2015-01-15
    • 2015-05-09
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多