htaccess文件不会给出第二个查询变量

时间:2013-06-10 19:24:22

标签: .htaccess

文件适用于index.php?p=$1但不适用于index.php?places=$1

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?p=$1

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?p=$1

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?places=$1

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?places=$1

从评论

更新

这是index.php

的一部分
if(isset($_GET['p']) && $_GET['p']=='Kontakt'){
include ("pages/Kontakt.inc.php");
}
$događaj=(isset($_GET['događaj'])) ? $_GET['događaj'] : "none";
$mjesto=(isset($_GET['mjesto'])) ? $_GET['mjesto'] : "none";
$ponude=(isset($_GET['ponuda'])) ? $_GET['ponuda'] : "none"; elseif($ponude != "none"){ 
include ('pages/ponuda-template.inc.php');
} elseif($mjesto != "none"){
include ('pages/mjesta-template.inc.php');
} else $page = (isset($_GET['p'])) ? $_GET['p'] : "Početna";
include ('pages/pocetna.inc.php');

1 个答案:

答案 0 :(得分:1)

您使用的RewriteRules太相似了,这意味着它们都会返回相同的结果。

如果您在root级别有一个名为“places”的目录,那么您可以执行以下操作:

RewriteRule ^places/([a-zA-Z0-9_-]+)/?$ index.php?places=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?p=$1 [L]

注意*:规则按照达到的顺序应用(与条件不同)。

如果您想收集用于多个查询语句的相同信息,那么您可以这样做:

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?p=$1&places=$1 [L]

对于您正在处理请求的网站的网站名称?p=sitename,您可以使用:

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?p=%{HTTP_HOST}&places=$1 [L]

如果您尝试将包含句点的网站名称作为子目录进行匹配:

RewriteRule ^([a-zA-Z0-9_-]+\.[a-zA-Z0-9_-.]+)/?$ index.php?places=$1
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?p=$1