遇到RewriteRule和.htaccess问题

时间:2013-08-17 19:23:08

标签: php apache .htaccess

我的.htaccess有问题。这是代码:

RewriteEngine On
Options -MultiViews
Options +FollowSymlinks

#Remove .php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

#Profile
RewriteRule ^profile/([a-zA-Z0-9_-]+)-([0-9]+)/([a-zA-Z0-9_-]+)$ profile.php?one=$1&two=$2&three=$3

我想删除.php扩展名,并使用/profile.php创建一个易于搜索的URL。当我尝试访问http://website.com/profile/1/2/3我得到500错误时出现问题。但是,如果我删除删除php扩展的代码,那么它运行良好,但当然,显示.php扩展名。

那么......这段代码有什么问题?我一遍又一遍地检查,我真的没有发现任何错误......谢谢。

1 个答案:

答案 0 :(得分:1)

我认为问题不是使用L标记(标记最后一条规则)。

用以下代码替换您的代码:

RewriteEngine On
Options +FollowSymlinks -MultiViews

#Profile
RewriteRule ^profile/([\w-]+)/([\w-]+)/([\w-]+)/?$ profile.php?one=$1&two=$2&three=$3 [L,QSA]

#Remove .php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]