htaccess,总是一个GET值

时间:2013-12-17 20:34:19

标签: .htaccess

所以我在我的htaccess中有这个

RewriteRule ^page(?:/error(?:/([^/]+))?)?/?$ page.php?error=$1 [L,QSA]

但我总是得到一个空数组,这是错误=“”。页面上方的任何内容都应该是可选的,但是它将$ _GET数组中的错误设置为空。

Array ( [error] => )

RewriteEngine on
Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page(?:/error(?:/([^/]+))?)?/?$ page.php?error=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

1 个答案:

答案 0 :(得分:1)

您很可能已MultiViews开启。

在.htaccess上添加此行以将其关闭:

Options -MultiViews

更新:完整.htaccess:

Options -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^register(?:/error(?:/([^/]+))?)?/?$ /register.php?error=$1 [L,QSA]

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