-2

php 页面未接收到 GET 变量,并为 textSearch 生成未定义的索引错误。我已经关闭了多视图,并按照相关帖子中的建议添加了 QSA。

我的 .htaccess 看起来像这样

Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?id=$1 [QSA,L]

$_GET变量应命名为 textSearch

<form action='users/index.php' method"GET">
   <input type='text' name='textSearch'>
   <input type='submit' value='submit'>
</form>

[编辑] 如评论中所述,表单的位置在 中localhost/Build_3/index.php,并将“textSearch”变量传递给localhost/Build_3/users/index.php

[编辑]

目录结构如下:
默认主页是Build_3/index.php
用户主页是Build_3/users/index.php

中的表单Build_3/index.php应该转到Build_3/users/index.php并提供变量 textSearch。
我有一个.htaccess,目录Build_3中有一个。Build_3/users

4

1 回答 1

1

%{QUERY_STRING}在规则末尾添加。

Options -MultiViews
RewriteEngine on
RewriteRule (.*)\.dummy$ ./?page=dummy&%{QUERY_STRING} 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?id=$1%{QUERY_STRING} [QSA,L]

笔记:

  1. 上面是Options -MultiViews干什么的?
  2. 为了RewriteRule ^(.*)$ index.php?id=$1%{QUERY_STRING} [QSA,L]工作,您需要添加一些虚拟条件,就像我在上面添加的那样。

更新#1

据我了解,如果我的理解有误,请纠正我:

  1. 中有一个表格Build_3/index.php,有一个post方法,取 to Build_3/users/index.php。因此,我假设您随身携带以下物品:

    <form method="post" action="users/index.php">
    ...
    ...
    </form>
    
  2. 你有两个.htaccess文件。为什么目录中有一个users?好吧,我不确定,为什么你有一个Build_3/。如果您希望用户以以下方式访问 URL:

    http://Build_3/users/5
    

    它应该以这种方式重定向:

    http://Build_3/users/index.php?id=5
    

    然后您需要以这种方式更改目录.htaccess中的文件Build_3/users/

    RewriteEngine on
    RewriteRule (.*)\.dummy$ ./?page=dummy&%{QUERY_STRING} 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.*)$ index.php?id=$1%{QUERY_STRING} [QSA,L]
    
于 2012-11-07T06:30:27.813 回答