htaccess的从子文件夹服务,但不能直接得到它
问题描述:
我服务从一个内容,就好像它是其他dir指明,像这样:htaccess的从子文件夹服务,但不能直接得到它
mysite.com/dir/etc ==> mysite.com/realdir/dir/etc
要在我的htaccess文件实现这一点我的规则是:
RewriteCond %{REQUEST_URI} ^\/([^\/]+)[\/]?(.*)$
RewriteCond realdir\/%1 -d
RewriteRule^realdir/%1/%2 [L]
但是,这也允许直接访问真正的路径。我不希望我的用户能够访问真实路径,我只需要一条路径即可访问内容。我试过重定向,但我造成了无限循环。
请帮忙。谢谢你的建议。
答
您可以使用:
# No acces to realdir, redirect to root with same path
RewriteCond %{THE_REQUEST} \s/+realdir/(.*)\s [NC]
RewriteRule^/%1 [R=301,L]
# rewrite mysite.com/dir/etc ==> mysite.com/realdir/dir/etc
RewriteCond realdir/$1 -d
RewriteRule ^([^/]+)[/]?(.*)$ realdir/$1/$2 [L]
答
这个工作对我来说...
# redirecting when trying to access real location
# and avoiding loops checking the redirect status
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} ^\/realdir(.*)$ [NC]
RewriteRule^%1 [L,R=301]
# serve realdir if realdir/subdir exists
RewriteCond %{REQUEST_URI} ^\/([^\/]+)(.*)$
RewriteCond realdir/%1 -d
RewriteRule^realdir\/%1%2 [L]
感谢@Croises您的帮助,但它并没有我的情况下工作。无论如何它帮助我。可能我的问题写得不好。 –
这是一个错字... – Croises