繁体   English   中英

如何使请求文件名的 .htaccess 重写规则与索引文件的目录一起使用?

[英]How to make .htaccess rewrite rule for request filename work with directories with index files?

这是我正在使用的 .htaccess。

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -f [OR]
 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
 RewriteRule (.*)$ https://sub.example.com/$1 [R=301,L]
</IfModule>

当请求像 path1/path2/index.html 这样的特定文件路径时,它可以正常工作并且不会重写。 但是如果请求像 path1/path2/ 这样的路径,即使该目录中有像 index.html 这样的 DirectoryIndex 文件,它也会重定向。 有什么简单的方法可以解决这个问题?

正如我在上面的评论中建议的那样,这样的事情应该可以工作:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . https://sub.example.com%{REQUEST_URI} [R=301,L,NE]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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