Php url重写正在工作,但在错误的页面上

Php url重写正在工作,但在错误的页面上,php,.htaccess,mod-rewrite,url-rewriting,Php,.htaccess,Mod Rewrite,Url Rewriting,我有一个url重写工作,但我不确定我如何得到它,所以它只适用于我的搜索文件夹的索引页 我正在使用以下代码: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+?)/?$ /search/index.php?q=$1 [L,QSA] 具有以下文件夹结构: / /public_html /search -index.php (inside search dir)

我有一个url重写工作,但我不确定我如何得到它,所以它只适用于我的搜索文件夹的索引页

我正在使用以下代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)/?$ /search/index.php?q=$1 [L,QSA]
具有以下文件夹结构:

/
    /public_html
        /search
            -index.php (inside search dir)
当我使用上述url重写时,我有以下输出:

http://blah.com/home/
唯一的问题是,它没有重定向到我的主文件夹,而是转到搜索页面并运行对主文件夹的搜索

我期望的结果是:

http://blah.com/search/query
where query是我实际搜索的内容

我的搜索目录index.php中的当前php代码:

include('../secure.php');
$search = $_GET['q'];

如何获取它,以便重写只在我的搜索文件夹的index.php页面上进行?

使用以下代码将您的
.htaccess
保存在
public\u html
目录中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^search/(.*)$ search/index.php?q=$1 [L,QSA]

两种方法都试过了,但都不起作用。为你的尝试干杯!请尝试在我的本地工作的经过良好测试的更新代码。没有,我仍然有:(这可能与我的url如何从初始页面传递有关吗?对不起,我不明白你说的我仍然有
。如果你访问
blah.com/search/hello
,它将与访问
blah.com/search/index.php?q=hello
是什么意思。但你不会被重定向到任何地方。这是什么意思你想要吗?是的,这就是我想要的,我想转到我的搜索目录,然后“获取”hello参数,并将其用作我的搜索条件。我希望这能让它更清晰一些?