2012-10-24 51 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的一個路線的輪廓。但最好有$