htaccess在不同的机器上表现不一样

I'm using the following rewrite code in my htaccess, but there's a problem.

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([A-Za-z0-9-_]+)/?$ /$1.php [NC,L,QSA]
RewriteRule ^admin/([A-Za-z0-9\-]+)/?$ /admin/$1.php [NC,L]
RewriteRule ^user-profile/([A-Za-z0-9]+)/?$ /user-profile.php?view=$1 [NC,L]

machine A: www.website.com/admin/admin.page [doesn't works, 404] [admin.page.php works]

machine B: localhost/alias/admin/admin.page [works]

machine A: www.website.com/user-profile/username [works]

machine B: localhost/alias/user-profile/username [doesn't works, 302] [user-profile.php?view=username works]

whats going wrong ?

(i'm using alias on one machine, and not on the other)

machine A: apache 2.2.22, php 5.4.3 winxp pro

machine B: apache 2.2.22, php 5.4.3 win7 ultimate

EDIT:

127.0.0.1 - - [21/Feb/2013:11:08:32 +0100] "GET /alias/user-profile/username HTTP/1.1" 302 1373

127.0.0.1 - - [21/Feb/2013:11:08:33 +0100] "GET /alias/account HTTP/1.1" 302 20

127.0.0.1 - - [21/Feb/2013:11:08:33 +0100] "GET /alias/announcements HTTP/1.1" 200 4157

RewriteRule ^admin/admin.([A-Za-z0-9\-]+)/?$ /admin/admin.$1.php [NC,L]

fixes the admin part, now i need to fix the profile part..

The rewriterules shouldn't trigger for the /alias urls as your Rewriterule defines the expression as starting with admin (^admin) also, the different hosts (www.website.com and localhost) may not arrive at the same virtual host. The issue here is more likely to be due to the differences in the urls rather than your rewrite rules.