2012-04-18 33 views
0

我在htaccess文件中使用正则表达式来捕捉/ [用户名]并将其重定向到用户名页面,例如,mywebsite.com/john将转发到mywebsite。 COM /用户名?U =约翰。这有效,但我现在想要排除任何与存在的目录匹配的内容。因此,如果有人访问mywebsite.com/sign-up,则因为该目录(/注册)存在,所以这是针对重定向的EXCLUDED。这是可能的,这是正常的做法吗?谢谢。正则表达式htaccess匹配模式,除非目录存在

编辑:理想情况下,我不希望手动排除每个现有目录。我希望它是所有现有目录自动的。

回答

0

在它之前使用重写条件。 !-f表示不是现有文件,!-d表示不是现有目录。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]+)$ username?u=$1 [L] 
+0

我试过了,它适用于某些情况,但不是全部。例如,如果我追加'/登录',那么重定向不会发生,但如果我追加'/ css',那么即使我的css目录确实存在,方向也会发生。有什么想法吗? – 2012-07-20 13:15:34