我的.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扩展名。
那么......这段代码有什么问题?我一遍又一遍地检查,我真的没有发现任何错误......谢谢。
答案 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]