我正在尝试从我重建网站时使用的URI删除文件扩展名和尾随斜杠。我意识到从实际依赖文件夹的URL中删除尾部斜杠是荒谬的,但我需要保留在几年前在自制CMS中构建网站时创建的现有URL结构。
我已经阅读了以下内容以及更多内容。
Remove file extension with .htaccess: Error with trailing slash
Remove .php extension with .htaccess
似乎人们喜欢一遍又一遍地回答问题的第一部分(重新删除PHP)并跳过第二部分(同时删除尾部斜杠)。
我可以删除PHP(或HTML)文件扩展名,但无法删除PHP文件扩展名和目录的尾部斜杠。
我正在使用MAMP并在OS X El Capitan v.10.11.6上使用Mac。
以下是我需要的三个URI,以确认这是有效的:
首先,我尝试使/ localhost /和/ localhost /关于工作。
在我的根目录中,我有以下文件:
我在.htaccess文件中有这个:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
当我浏览/ localhost /时,我会看到主页。
当我浏览到/ localhost / about时,我得到了所需的结果 - 没有文件扩展名或尾部斜杠的about页面。
即,它到目前为止有效。
为了使/ localhost / about / guarantee工作,我在根目录中创建了一个子文件夹:
不幸的是,当我现在尝试访问/ localhost /时,浏览器会重定向到/ about /并显示:
指数/约
父目录
guarantee.php
即,我无法再访问/ localhost / about。
我可以到/ localhost / about / guarantee。
所以,我尝试重新排列文件。我将index.php文件添加到/ localhost / about / folder:
我现在可以访问/ localhost /和/ localhost / about /(WITH THE TRAILING SLASH)和/ localhost / about / guarantee。
我找不到一个解决方案,它会从/ localhost / about /.
中删除尾部斜杠我希望得到一些.htaccess文件的帮助。