URL $ _GET无效

时间:2014-12-16 14:00:34

标签: php wordpress .htaccess get

我遇到了一个我从来没有过的问题,我无法找到原因。 我将我的网站移动到另一个主机,现在它没有"阅读" $ _GET变量。

我有这个网址:http://whatever.com/path?filtro=si&provincia=Santa+Fe&localidad=Rosario 如果我这样称呼:

$localidad = $_GET['localidad'];
$provincia = $_GET['provincia'];
$filtro = $_GET['filtro'];

echo $localidad;
echo "hola";
echo $provincia;
echo $filtro;

除了" hola"之外什么都不打印,所以没有PHP错误。 这是我的.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我在一个Wordpres网站上工作,也许它与永久链接有什么关系,我真的迷路了。非常感谢,感谢您的帮助。

修改

我重新命名了我的.htacces,所以它不会读取它并且页面坏了,所以我去了wordpress中的永久链接设置并将它们设置为

 - Post Name    http://luminias.com/index.php/example-page/

现在它工作了,但是,现在这是你的网址:

http://whatever.com/index.php/path/?filtro=si&provincia=Santa+Fe&localidad=Rosario

它会打印所有$ _GET,但我需要&#34; /index.php /"走了..

1 个答案:

答案 0 :(得分:2)

在function.php中为所有参数添加add_rewrite_tag函数:

function custom_rewrite_tag() {
        add_rewrite_tag('%localidad%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);

您可以使用

在模板中调用参数
$wp_query->query_vars['localidad']

以下是full documentation

  

请注意,在重写的网址上使用$_GET将无效,即使是   rewrite包含查询字符串变量。您必须使用$wp_query