我有一个非常小的网站,我的.htaccess设置为允许网址:
mysite.com/brand/login
mysite.com/brand/dashboard
mysite.com/controller
这些全部重定向到:
mysite.com/driver.php?___=brand/login
mysite.com/driver.php?___=brand/dashboard
mysite.com/driver.php?___=controller
我只是为此使用了一个重写规则:
RewriteRule ^(([a-zA-Z0-9\-\_]+/?)*)$ index.php?___=$1 [L,QSA]
但无论如何,它确实很棒,直到我的网页与我网站中的文件夹同名。
// I navigate to:
mysite.com/javascript
// The site automatically provides a 301 redirect to
mysite.com/javascript/? ___=javascript
现在,丑陋的网址已经出现在我的用户中了。浏览器。有没有办法告诉网站我想自己处理所有重定向?
编辑:我使用fiddler确定了这一点。另一个例子:
答案 0 :(得分:0)
Welp在发布后立即找到答案。 .htaccess中的这一行解决了这个问题。
DirectorySlash Off
当然,我必须清除浏览器缓存以使其忘记301。
https://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryslash
DirectorySlash指令确定mod_dir是否应该修复 指向目录的URL。
通常,如果用户请求没有尾部斜杠的资源, 指向一个目录,mod_dir将他重定向到同一个目录 资源,但有斜杠
安全警告:
关闭尾部斜杠重定向可能会产生信息 披露。考虑mod_autoindex处于活动状态的情况 (Options + Indexes)和DirectoryIndex设置为有效资源(例如, index.html)并且没有为该URL定义其他特殊处理程序。 在这种情况下,带有斜杠的请求将显示index.html 文件。 但是没有尾随斜杠的请求会列出目录 内容。强>