2012-04-28 131 views
0

我的htaccess代碼有問題。爲什麼這個htaccess代碼不能正常工作?

當我嘗試加載example.com/user/register/是readed頁是profile.php

當我存取權限example.com/user/register它工作正常,並讀register.php

如何編輯此htaccess代碼以使用example.com/user/register/?

RewriteRule ^user/register?$ register.php [L] 
RewriteRule ^user/register?$ /user/register/ [R=301,L] 

RewriteRule ^user/?$ user.php [L] 
RewriteRule ^user?$ /user/ [R=301,L] 

RewriteRule ^user/(\d+)/$ profile.php?id=$1 [L] 
RewriteRule ^user/(\d+)?$ /user/$1/ [R=301,L] 

RewriteRule ^user/([^/]+)/$ profile.php?username=$1 [L] 
RewriteRule ^user/([^/]+)?$ /user/$1/ [R=301,L] 
+0

應該重寫規則^用戶/註冊/ $? register.php [L]如果你想支持/ user/register/for register.php – mask8 2012-04-28 15:45:40

回答

1

您是在使用/ user/register /還是/ user/register之後?

從當前重寫的外觀來看,您正在將/ user/register重寫爲/register.php,然後將其重定向到/ user/register /,儘管重定向永遠不會發生,因爲[L]先前的規則。

如果你想使用/用戶/註冊/我會建議嘗試:

RewriteRule ^user/register/$ /register.php [L] 
RewriteRule ^user/register$  /user/register/ [R=301,L] 

如果你想/用戶/註冊,如果您需要:

RewriteRule ^user/register$  /register.php [L] 
RewriteRule ^user/register/$ /user/register [R=301,L] 

或者,如果你不」不管網址是否有斜線,這樣做:

RewriteRule ^user/register/?& /register.php [L] 

另一點需要考慮的是我F你不要你的網址有尾隨斜線,你可以在你的.htaccess的頂部使用一個通用的重定向而不是針對每個網頁的重定向:

RewriteRule ^(.*)/$ /$1 [R=301,L]