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