0

我无法访问我的获取请求...

我的.htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /alex
RewriteRule ^admin/([a-zA-Z0-9]+)/?$ admin/index.php?page=$1
RewriteRule ^admin/([a-zA-Z0-9]+)?$ admin/index.php?page=$1
RewriteCond %{REQUEST_URI}  !(admin|assets|inventory|test)
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1
RewriteCond %{REQUEST_URI}  !(admin|assets|inventory|test)
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1
ErrorDocument 404 /alex/index.php?page=404
ErrorDocument 403 /alex/index.php?page=404

我点击的网址:

http://example.com/alex/admin/users?pagenum=37

示例 PHP 代码:

echo $_GET["pagenum"];

但是,我在我的 php 中绝对没有得到变量回显。是我的 .htaccess 造成的吗?如果不是... 是什么?

4

1 回答 1

4

您需要QSA在重写中使用该标志:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /alex
RewriteRule ^admin/([a-zA-Z0-9]+)/?$ admin/index.php?page=$1 [L,QSA]
RewriteRule ^admin/([a-zA-Z0-9]+)?$ admin/index.php?page=$1 [L,QSA]
RewriteCond %{REQUEST_URI}  !(admin|assets|inventory|test)
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1 [L,QSA]
RewriteCond %{REQUEST_URI}  !(admin|assets|inventory|test)
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [L,QSA]

该标志会将任何现有查询字符串附加到您在规则目标中构建的查询字符串的末尾。通常,如果您的规则目标中没有 a,则?默认情况下会附加查询字符串。但是,如果您?的目标中确实有 a,则需要QSA.

于 2013-04-08T09:52:40.550 回答