我使用此.htaccess
规则检测网址中的用户名,并将访问者重定向到用户个人资料页面:
# username handler
RewriteRule ^([a-z]{2,30})$ /user.php?username=$1 [L]
那样:
example.com/asantos
打开user.php?username=asantos
我也有一级目录:
example.com/ajax/
example.com/static/
example.com/assets/
因此,如果我直接打开任何这些目录,它们会被htaccess规则检测到,因此被重定向到:
example.com/user.php?username=ajax
example.com/user.php?username=static
example.com/user.php?username=assets
当且仅当目录已存在时,如何忽略该.htaccess
规则?
答案 0 :(得分:1)
你可以这样做:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]{2,30})$ /user.php?username=$1 [L]
或者,为了获得更好的性能,请列出目录以避免轮询文件系统:
RewriteCond %{REQUEST_URI} !/(?:ajax|static|assets)$
RewriteRule ^([a-z]{2,30})$ /user.php?username=$1 [L]