尝试将某个目录重定向到文件名

时间:2015-01-12 21:38:59

标签: apache .htaccess mod-rewrite

我想截取两个特定目录的HTTP请求:

/mydir/
/thisdir/

每当有人请求其中一个时,应分别为/mydir.html/thisdir.html提供服务。所有其他目录应该正常运行。

我可以让它适用于所有目录:

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/ $1.html [QSA]

但是我尝试让它只为两个特定的目录工作:

RewriteCond %{REQUEST_FILENAME} ^/(mydir|thisdir)/$
RewriteRule ^(.+)/ $1.html [QSA]

RewriteCond %{REQUEST_URI} ^/(mydir|thisdir)/$
RewriteRule ^(.+)/ $1.html [QSA]

导致显示目录索引。

2 个答案:

答案 0 :(得分:2)

您可以使用此规则:

RewriteCond %{THE_REQUEST} /(mydir|thisdir) [NC]
RewriteRule ^(mydir|thisdir)/?$ $1.html [L,NC]

答案 1 :(得分:0)

这个怎么样?

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(mydir|thisdir)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}$1.html [R=301]