这是我的.htaccess-content:
RewriteEngine On
RewriteBase /
Options -Indexes -MultiViews
#Rewriting /profile.php?name=XY to /player/XY
RewriteRule ^player/([^/]*)$ /profile.php?name=$1 [L]
#Remove .php file ending
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
如果我正在浏览my-domain/player/XY
,它会将我重定向到player.php?name=XY
(并打印内部服务器错误,因为player.php不存在),而不是显示配置文件。
但如果我改成它
RewriteRule ^player/([^/]*)$ /profile.php?name=$1 [L]
并打开my-domain/playera/XY
它可以正常工作。
请帮帮我吗?
答案 0 :(得分:1)
由于第一条规则应与/player/XY
匹配,因此不确定您收到该错误的原因。但是你可以在你的php规则中添加一些条件,以确保 it 正确地重写:
#Remove .php file ending
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*) $1.php [L]