rewriteCond匹配一个URL段并检查它是否是一个目录

时间:2014-12-17 16:01:34

标签: regex .htaccess mod-rewrite

我有一个像server.com/foo/bar/abc

这样的网址

我想看看URL的第一段是否是目录。我在.htaccess

中有这个
RewriteCond %{REQUEST_URI} ^/([a-z0-9_]+)/(.*)
RewriteCond $1 -d # <- this does not work
RewriteRule . %1/index.html [L]

第1行和第3行正常工作。我能够将%1与第一段匹配。但第2行什么也没做。 我也尝试了第2行的%1,结果是一样的。整个规则失败,因为line是false。如果先前匹配的模式是目录,我该如何匹配?

2 个答案:

答案 0 :(得分:1)

尝试:

RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule ^([^/]+)/(.*) /$1/index.html [L]

答案 1 :(得分:0)

谢谢我让它像这样工作

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/([a-z0-9_]+)/?(.*)
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^.*$ app/index.html [L]