0

我的 .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 创建一个对 seo 友好的 URL。当我尝试访问http://website.com/profile/1/2/3时出现问题,我得到 500 Error。但是,如果我删除了删除 php 扩展名的代码,那么它运行良好,但当然会显示 .php 扩展名。

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

4

1 回答 1

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]
于 2013-08-18T04:37:00.073 回答