防止在 Apache 服务器中将 "path" 重定向到 "path/"
Prevent redirect of "path" to "path/" in apache server
我正在使用 XAMPP 创建本地服务器,并注意到当我访问 localhost/path 之类的内容时,我被重定向 (301) 到 localhost/path/
问题是我正在尝试向 localhost/path 发送 POST 请求,之后被重定向它变成了一个 GET 请求。
有没有办法防止这种重定向的发生?
可能值得一提的是,我在 .htaccess 文件中使用 mod_rewrite,但即使所有规则禁用,行为保持不变。
编辑
我意识到我有一个名为 path 的文件夹,重命名它会阻止 localhost/path 重定向。
不过,当文件夹存在同名时,有没有办法避免这种行为(没有得到 localhost/path/ 的 301)?
您可以结合使用 DirectorySlash
指令和删除尾部斜杠的常规正则表达式:
RewriteEngine On
DirectorySlash Off
RewriteRule ^(.+?)/$ / [R=302,NE,L]
示例: 假设 path
是一个现有文件夹并且 foo
不存在:
/path/
=> /path
/path/foo/
=> /path/foo
/foo/
=> /foo
/path
保持不变
/path/foo
保持不变
/foo
保持不变
我正在使用 XAMPP 创建本地服务器,并注意到当我访问 localhost/path 之类的内容时,我被重定向 (301) 到 localhost/path/
问题是我正在尝试向 localhost/path 发送 POST 请求,之后被重定向它变成了一个 GET 请求。
有没有办法防止这种重定向的发生?
可能值得一提的是,我在 .htaccess 文件中使用 mod_rewrite,但即使所有规则禁用,行为保持不变。
编辑
我意识到我有一个名为 path 的文件夹,重命名它会阻止 localhost/path 重定向。
不过,当文件夹存在同名时,有没有办法避免这种行为(没有得到 localhost/path/ 的 301)?
您可以结合使用 DirectorySlash
指令和删除尾部斜杠的常规正则表达式:
RewriteEngine On
DirectorySlash Off
RewriteRule ^(.+?)/$ / [R=302,NE,L]
示例: 假设 path
是一个现有文件夹并且 foo
不存在:
/path/
=>/path
/path/foo/
=>/path/foo
/foo/
=>/foo
/path
保持不变/path/foo
保持不变/foo
保持不变