以下是我的目录结构
Root (example.com)/
index.htm
contact.htm
privacy.htm
disclaimer.htm
cat/
play/
fun.htm
rest/
sleep.htm
我设法删除文件扩展名并添加一个尾部斜杠:
RewriteEngine on
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R,L]
但我也希望以这样的方式制作:当人们转到www.example.com/fun/
时,他们无需重定向即可访问www.example.com/cat/play/fun.htm
,这意味着,在地址栏中它仍会显示www.example.com/fun/
。
我知道我可以使用直接方法:
RewriteRule ^fun/$ /cat/play/fun.htm [L]
RewriteRule ^sleep/$ /cat/rest/sleep.htm [L]
但我会在这两个子目录中添加更多文件(/ cat / play /和/ cat / rest /),所以我想知道是否有单一的重写规则来执行这些重写文件,而不必为这2个子目录下的100个文件输入100个重写规则。请指教。
感谢您的帮助。
答案 0 :(得分:0)
将这些行放在.htaccess
RewriteRule ^fun/?$ play/fun.htm [L]
RewriteRule ^sleep/?$ rest/sleep.htm [L]
它们不能移动到一个规则,因此它们应该与每个URL的单独规则一起使用。