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

Php htaccess在不同的机器上表现不一样,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我在htaccess中使用了以下重写代码,但出现了一个问题 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-Z

我在htaccess中使用了以下重写代码,但出现了一个问题

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]
机器A:www.website.com/admin/admin.page[不工作,404][admin.page.php工作]

机器B:localhost/alias/admin/admin.page[工作]

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

机器B:localhost/alias/user profile/username[不工作,302][user profile.php?view=username工作]

出什么事了

(我在一台机器上使用alias,而不是在另一台机器上)

机器A:Apache2.2.22,PHP5.4.3WinXP pro

机器B:Apache2.2.22,PHP5.4.3Win7Ultimate

编辑:

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


修复了管理部分,现在我需要修复配置文件部分。

重写规则不应触发/alias URL,因为您的重写规则将表达式定义为以admin(^admin)开头。此外,不同的主机(www.website.com和localhost)可能不会到达同一虚拟主机。
此处的问题更可能是由于URL的差异而不是您的重写规则造成的。

当您尝试访问这些地址时会发生什么情况?http/1.1 302重定向如果已登录,则重定向到默认登录页,如果已注销,到默认的注销页面可能应该迁移到某个服务器位置。我还不完全确定您要做什么,但请注意,重写条件仅适用于第一个重写规则。
RewriteRule ^admin/admin.([A-Za-z0-9\-]+)/?$ /admin/admin.$1.php [NC,L]