Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
apache重写冲突_Apache_Mod Rewrite - Fatal编程技术网

apache重写冲突

apache重写冲突,apache,mod-rewrite,Apache,Mod Rewrite,我知道有些矛盾,但作为一个修改版的麻瓜,是时候寻求帮助了 我正在重新写作 到 如果成功,请使用: (rule#1) RewriteRule ^(.*)\/$ script.php?id=$1&%{QUERY_STRING} [L] (rule#2) RewriteRule ^(.*)\/foobar/([0-9]+)$ script.php?id=$1&foobar=$2 [L] 接下来,我重写 到 同样成功的是,使用: (rule#1) RewriteRule ^(.*)\

我知道有些矛盾,但作为一个修改版的麻瓜,是时候寻求帮助了

我正在重新写作

如果成功,请使用:

(rule#1)
RewriteRule ^(.*)\/$ script.php?id=$1&%{QUERY_STRING} [L]
(rule#2)
RewriteRule ^(.*)\/foobar/([0-9]+)$ script.php?id=$1&foobar=$2 [L]
接下来,我重写

同样成功的是,使用:

(rule#1)
RewriteRule ^(.*)\/$ script.php?id=$1&%{QUERY_STRING} [L]
(rule#2)
RewriteRule ^(.*)\/foobar/([0-9]+)$ script.php?id=$1&foobar=$2 [L]
但是,当我尝试包含查询字符串时,
因此
可以重新写入
为此:

(rule#3)
RewriteRule ^(.*)\/foobar/([0-9]+)$ script.php?id=$1&foobar=$2&%{QUERY_STRING} [L]
然后阿帕奇就把我扔回了监狱

我从试错中知道,如果规则3没有使用与规则1相同的script.php,那么它将起作用,
但我不知道如何修复它,所以任何帮助都表示感谢


嗯……在用秋波的例子仔细检查了我的规则之后,我终于发现了哪里出了问题。虽然不是完美的,但我的重写规则实际上是按预期工作的。然而,我完全忘记了我有另一个脚本来检查有效的参数。。。显然,有时抛出随机测试值不是一个好主意。不过谢谢你的^/技巧

警告:您使用的是
*
,它实际上无法匹配任何内容。使用
+
,除非您打算不匹配任何内容


你所有的规则都列在这里了吗?您的错误日志中是否存在与此相关的错误?

使用
[^/]+
仅匹配一个或多个任意字符,除了
/
之外,而不是
*
任意数量的任意字符:

RewriteRule ^([^/]+)/$ script.php?id=$1&%{QUERY_STRING} [L]
RewriteRule ^([^/]+)/foobar/([0-9]+)$ script.php?id=$1&foobar=$2 [L]
此外,您可以设置QSA标志,使原始请求的查询自动附加到新URL,而不是手动附加:

RewriteRule ^([^/]+)/$ script.php?id=$1 [L,QSA]