sid*_*yll 5 mod-rewrite .htaccess apache-2.4
我使用简单的.htaccess来处理 PHP 脚本的所有内容:
RewriteEngine on
RewriteRule . index.php
Run Code Online (Sandbox Code Playgroud)
我的 index.php目前只是回显服务器变量(带有
print_r($_SERVER)
);一切正常,我在 URL 中输入任何内容,然后 显示index.php内容。然而,考虑到这种结构:
test/ # document root
folder/ # empty folder
index.php
.htaccess
Run Code Online (Sandbox Code Playgroud)
我注意到访问[site]/folder
首先将浏览器重定向到
[site]/folder/
然后显示正确的index.php内容。为什么会发生这种情况?重写规则不是应该“按原样”重定向所有内容吗?
这与设置的虚拟主机一起使用以在本地测试网站。配置最低限度。在我的.htaccess之前是否可能加载其他 apache 文件?
<VirtualHost *:80>
ServerName test.local
DocumentRoot /Library/WebServer/Documents/test/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当前使用 OS X 10.10。
正如上面的评论所确定的,该DirectorySlash
指令控制着这个特定的 Apache 行为,而重写规则并没有导致它。该指令默认为on。如果将其设置为off,则当请求映射到文件系统上目录的 URI 时不带尾部斜杠,Apache 不会将请求重定向到带尾部斜杠的 URI。
此处文档中的更多信息:https ://httpd.apache.org/docs/current/mod/mod_dir.html#directoryslash
归档时间: |
|
查看次数: |
6514 次 |
最近记录: |