2012-10-24 68 views
0

我在努力让我的网站htaccess的工作......但没有运气..htaccess的rule..not能够解决

下面是代码

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
    RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^([^/]+)/? /profile.php?username=$1 [L,NC] 
</IfModule> 

这工作得很好没有问题..但是当我添加一些它不会工作..在以下情况下 -

1)例如,当我键入example.com/dinesh它会重定向到www.example.com(总是主页,而不是我希望它请访问www.example.com/dinesh

2)现在我有另外一个users.php与两个参数的事情是当我传递一个参数,它应该执行此规则profile.php,但是当我传递两个参数,然后它应该带我到user.php我试了这么多的组合,但这是行不通的。

如果有专家可以给我至少一些很棒的提示。

+0

与往常一样的问题:你打开了重写日志吗?它说什么? – arkascha

回答

0

至于1),它可能与上述规则没有任何关系。如果/dinesh存在,你应该看看那里。如果它不存在,你应该看看/profile.php,这可能是什么重定向你的主页。

至于2),您的规则:

RewriteRule ^([^/]+)/? /profile.php?username=$1 [L,NC] 

匹配的URI:/something/else,因为正则表达式没有结束串的匹配。它匹配第一个something,这就够了。如果您最后添加$,则它将不匹配/something/else

RewriteRule ^([^/]+)/?$ /profile.php?username=$1 [L,NC] 

或者,您也可以将其他的规则,路线user.php的一个路线的轮廓。但最好有$