首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用尾随斜杠会破坏url。

禁用尾随斜杠会破坏url。
EN

Stack Overflow用户
提问于 2016-03-11 13:51:40
回答 1查看 84关注 0票数 1

我正在使用AMPPS在我的Mac (OSX10.11.3)上开发一个本地网站。我在网站的根目录(位于/Applications/AMPPS/www )中创建了一个/Applications/AMPPS/www文件。以下是文件的内容

代码语言:javascript
复制
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
DirectorySlash Off

我不是100%确定第1行做什么,但它是为第4-5行。我增加了第3行,试图解决我的问题,但这并没有帮助(我将在下面解释这个问题)。第6行似乎是问题所在。我添加它是因为我不需要相对的url,我希望url看起来更干净一些。

无论何时我去localhost/asf,它都没有尾随斜杠(正如我想要的那样)。但是,如果我添加一个尾随斜杠localhost/asf/,url将被重定向到localhost/Applications/AMPPS/www/asf,其中/Applications/AMPPS/www/asfasf相对于我的计算机根目录的位置。

另外,当我尝试使用"foo“而不是"asf”时,url根本没有重定向。意思是localhost/foo/保持原样,一点变化也没有。

这可能是Mac或AMPPS问题,但是否有人有至少第一个问题的解决方案(重定向到我的计算机的根目录)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-16 10:08:29

这是因为您已经打开了DirectorySlash Off,这意味着现在可以使用或不使用拖尾斜杠来访问现有的dirs。

你现在面临的问题是,如果你用一个尾随斜线请求它们,它们将被重写到/index.html

为了避免这种行为,需要使用以下RewriteCond将真正的目录排除在规则之外:

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-d

使用此RewriteCondition,您可以连接到在/dir/dir/末尾有斜杠或没有斜杠的dir。

代码语言:javascript
复制
 DirectorySlash Off
 Options -MultiViews
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^ index.html [QSA,L]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35942001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档