繁体   English   中英

我正在尝试在htaccess中使用掩码的网址,现在我无法在php中获取搜索查询

[英]I am trying to use masked url in htaccess and now i am not able to get search queries in php

我正在用php创建网站并使用htaccess重写规则。 我的htaceess代码隐藏核心php页面是


RewriteCond %{REQUEST_URI} search
RewriteRule search /directory/search.php?&q=$1

我正在使用GET in from方法来提交查询,表单是


<form action="http://<?php echo $_SERVER['SERVER_NAME']?>/search" method="GET">
<span><input type="text" name="q" class="search rounded" placeholder="Search something... :)" x-webkit-speech speech onwebkitspeechchange="this.form.submit();"></span>
</form>

我的search.php临时代码是


<?php

if(!isset( $_GET['q']))
    {
        echo '<p>Page is not set!</p>';
    }
        else
        {
            echo '<p>Search Page is running cool';
        }
?>

当我以类似搜索词“ hello”的形式进行搜索时,它向我显示网址“ localhost / search?q = hello”

另一件事是我收到“内部服务器错误500”

我正在使用xampp,我认为htaccess首先无法正常工作,然后搜索表单未发送适当的查询和所有内容。 所以请帮我

您正在执行的是GET请求类型。

需要将参数传递给初始重写变量。

尝试这个:

RewriteRule ^search/([^/]*)/$ /directory/search.php?&q=$1 [L]

要发布数据,而不是GET:

RewriteRule ^search /directory/search.php?q=$1 [NC,P]

“ P”的作用类似于“ L”,因为它停止了处理规则,但它还告诉模块应将请求原封不动地传递给代理模块(意味着保留了POST数据)。

另外,请确保您打开了重写引擎,并设置了选项。 如果没有启用重写引擎,则会出现500错误。

这是我通常使用的:

Options +FollowSymlinks
Options -MultiViews 
RewriteEngine On
RewriteBase /
ErrorDocument 404 /error.php
ErrorDocument 300 /error.php
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM