Mod rewrite 仅当文件夹存在但文件不存在时重写';T
我试图将所有请求重写到一个不存在但文件夹存在的文件中 我的意思是: 假设我有这个文件夹结构:Mod rewrite 仅当文件夹存在但文件不存在时重写';T,mod-rewrite,apache2,Mod Rewrite,Apache2,我试图将所有请求重写到一个不存在但文件夹存在的文件中 我的意思是: 假设我有这个文件夹结构: foo '-bar1 '-bar2 '-bar2.html '-shared '-shared.html 我希望重写规则能够正常提供example.com/foo/bar2/bar2.html。将example.com/foo/bar1/bar1.html作为/foo/shared/shared.html提供,不提供example.com/foo/bar3/bar3.ht
foo
'-bar1
'-bar2
'-bar2.html
'-shared
'-shared.html
我希望重写规则能够正常提供example.com/foo/bar2/bar2.html。将example.com/foo/bar1/bar1.html作为/foo/shared/shared.html提供,不提供example.com/foo/bar3/bar3.html
总而言之。我正在尝试开发一个重写条件,该条件仅在目录存在但文件不在该目录中时生效
问题在于:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
它将重写www.example.com/bar3/bar3.html,即使/foo/bar3目录不存在
谢谢你的帮助 这些规则应该起作用:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1/ -d
RewriteRule ^(.+)/([^/]+)$ /foo/shared/shared.html [L,QSA]
httpd vhost.conf
),则需要对其进行一些修改(在第二次重写中删除一些斜杠..或在重写规则中添加前导斜杠--实际上需要进行测试)