[英].htaccess preserve url on rewrite
我正在使用以下命令将域重定向到子文件夹
RewriteCond %{HTTP_HOST} ^domain.net [OR]
RewriteCond %{HTTP_HOST} ^www.domain.net$
RewriteCond %{REQUEST_URI} !subfolder/
RewriteRule ^(.*)$ subfolder/$1 [L]
但是如果我访问domain.net/folderinsidethatsub
网址被重写为
domain/net/subfolder/folderinsidethatsub
有什么办法可以防止这种情况?
这可能是因为mod_dir将对目录的任何请求重定向,但不带斜杠到相同的URL,但带有斜杠。 有一个很好的原因,因为它可以防止暴露文件夹的内容(即使您有索引文件)。 阻止mod_dir执行此操作的唯一方法是关闭DirectorySlash
指令,但是,您将需要mod_rewrite规则来手动添加尾部斜杠,否则人们将能够公开目录的内容。 在您已经拥有的规则之上添加以下内容:
DirectorySlash Off
RewriteCond %{DOCUMENT_ROOT}/subfolder%{REQUEST_URI} -d
RewriteRule ^(.+[^/])$ /$1/ [L,R=301]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.