用户名的mod_rewrite循环问题

时间:2012-01-16 22:23:58

标签: php apache mod-rewrite loops redirect

我使用mod_rewrite制作个人资料页用户名,如mydomain.com/johndoe

下面的代码工作得很好直到我尝试访问目录,例如www.mydomain.com/images,然后我被抛入到{的无限循环中{3}}

当前代码:

RewriteEngine On

# Add WWW
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Redirect usernames
RewriteRule ^([A-Za-z0-9-]+)?$ profile.php?username=$1 [L] 


我也试过这个,但它也不起作用:

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^([A-Za-z0-9-]+)?$ profile.php?username=$1 [L] 

我哪里错了?

1 个答案:

答案 0 :(得分:3)

问题是,你必须决定它是一个现有的目录,还是一个包含用户名或其他动作的假uri,它会调用一些php脚本或其他东西。

使用!-d的方法是正确的,但也有!-f for files。

尝试类似

的内容
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^([A-Za-z0-9-]+)?$ profile.php?username=$1 [L]