我在我的 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]
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]
怎么了?
(我在一台机器上使用别名,而在另一台机器上不使用)
machine A: apache 2.2.22, php 5.4.3 winxp pro
machine B: apache 2.2.22, php 5.4.3 win7 ultimate
编辑:
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]
修复了管理部分,现在我需要修复配置文件部分..
关于php - htaccess 在不同的机器上表现不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999056/