Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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
Php 未设置htaccess重写规则中的环境变量_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 未设置htaccess重写规则中的环境变量

Php 未设置htaccess重写规则中的环境变量,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,在my.htaccess文件中使用以下条目时 RewriteEngine On SetEnv rewritten 0 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)(/|$) /#$1 [L,NE,R=302,E=rewritten:1] 它将/test/重写为/#test 目标是将“test”部分保留在一个环境变量中,这样我就可以使用php来更改Faceb

在my
.htaccess
文件中使用以下条目时

RewriteEngine On
SetEnv rewritten 0
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /#$1 [L,NE,R=302,E=rewritten:1]
它将
/test/
重写为
/#test

目标是将“test”部分保留在一个环境变量中,这样我就可以使用php来更改Facebook元标记,还可以使用锚来滚动到我的单页站点上的某个部分。对于上面的示例,重写的
变量始终为
0
,如果我删除
SetEnv
行,则根本不会设置变量

我已经读到,变量可能不会在
302
将执行的重定向后保留。还有别的办法吗?欢迎使用其他解决方案-我的总体目标是链接到应用程序的特定部分,并根据本节设置元标记

这里有很多问题,所以人们试图用锚定部分重写url,而不使用锚定部分重写url——这不是我的问题,因为这是不可能做到的

谢谢

编辑 上述情况是不可能的。将以下内容添加到
.htaccess
,从而将
/test
重定向到
/?test#test
。然后,PHP可以检查
test
param是否已设置,并相应地修改元标记

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]

上述情况是不可能的。将以下内容添加到
.htaccess
,从而将
/test
重定向到
/?test#test
。然后,PHP可以检查
test
param是否已设置,并相应地修改元标记

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]

上述情况是不可能的。将以下内容添加到
.htaccess
,从而将
/test
重定向到
/?test#test
。然后,PHP可以检查
test
param是否已设置,并相应地修改元标记

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]

无法使用外部重定向设置环境变量,因为当路径更改时,环境变量也会丢失。我认为你想通过这种方式实现的目标是不可能的。我通过在重定向后向url添加一个参数来解决这个问题
/test/
现在指向
/?test#test
环境变量不能使用外部重定向进行设置,因为当路径更改时,环境变量也会丢失。我认为你想通过这种方式实现的目标是不可能的。我通过在重定向后向url添加一个参数来解决这个问题
/test/
现在指向
/?test#test