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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Regex Url重写不适用于.com/index?foo=value到.com/value_Regex_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Regex Url重写不适用于.com/index?foo=value到.com/value

Regex Url重写不适用于.com/index?foo=value到.com/value,regex,apache,.htaccess,mod-rewrite,url-rewriting,Regex,Apache,.htaccess,Mod Rewrite,Url Rewriting,这是我的重写,我做错了什么 最初的结果是: www.website.com/index?foo=value 预期结果: www.website.com/value 代码: 编辑:我将代码更新为当前状态。现在的问题是在末尾添加一个prameter,将我发送到一个404页面,而不是将其视为一个查询参数 www.website.com/value->404最后一条规则应该是: # Internally forward /value to /index.php?foo=value RewriteCo

这是我的重写,我做错了什么

最初的结果是:

www.website.com/index?foo=value
预期结果:

www.website.com/value
代码:

编辑:我将代码更新为当前状态。现在的问题是在末尾添加一个prameter,将我发送到一个404页面,而不是将其视为一个查询参数

www.website.com/value->404最后一条规则应该是:

# Internally forward /value to /index.php?foo=value
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/?$ /index.php?foo=$1 [L,QSA]

RewriteRule^/(.*)$/$1.php?foo=$2[L,QSA,NC]
做的与您要求的完全相反。这只是让它知道查看/设置与index.php相同的值。foo=value那么我的重定向也错了吗?它似乎没有将foo视为一个参数,而是一个实际的文件//文件夹,在本例中,www.website.com/value不断将我发送到404页面是的,您的最后一条规则应该如我上面所建议的那样。如果
/value
不是文件/目录,那么它将被重写为
/index.php?foo=value
好的,我应该澄清一下,就index.php页面而言,这是正常工作的。每当我转到我的另一个页面时,虽然它会将url更改为write thing,但会将您保持在index.php上。它无法将其识别为实际的文件/目录。这是因为我要重写页面来去掉.php吗?如果是这样的话,我需要什么样的修复方法呢?不用担心,我一点击添加评论就会被它击中。我不得不改变重写的顺序!非常感谢。我还有一个www.domain.com/games/index.php?puzzle=value。有没有办法让这次重写不影响它?或者我需要为此一起编写一个新的重定向吗?
# Internally forward /value to /index.php?foo=value
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/?$ /index.php?foo=$1 [L,QSA]