繁体   English   中英

.htaccess在重写时保留网址

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM