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

时间:2014-03-04 11:33:06

标签: 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重写时,我有以下输出:

http://blah.com/home/

唯一的问题是,不是重定向到我的主文件夹,而是转到搜索页面并运行搜索主页。

我想要的输出是:

http://blah.com/search/query

其中查询是我实际搜索的内容。

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

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

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

1 个答案:

答案 0 :(得分:0)

使用以下代码将.htaccess保存在public_html目录内:

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