Php 将我的路径转换为整个查询的规则 例子:

Php 将我的路径转换为整个查询的规则 例子:,php,.htaccess,url-rewriting,query-string,url-encoding,Php,.htaccess,Url Rewriting,Query String,Url Encoding,我在以下位置进入浏览器: www.example.com/documents/pages/doc.php?bacon=bake&this=tastes\u good 我希望此链接使用编码到查询中的路径访问此页面: www.example.com/index.php?url=documents%2Fpages%2Fdoc.php%3Fbacon%3Dbaked%26这%3ddasters\u good 问题是,this index.php需要使用大的“url”查询变量在php中解码和修改它,然后使

我在以下位置进入浏览器:

www.example.com/documents/pages/doc.php?bacon=bake&this=tastes\u good

我希望此链接使用编码到查询中的路径访问此页面:

www.example.com/index.php?url=documents%2Fpages%2Fdoc.php%3Fbacon%3Dbaked%26这%3ddasters\u good

问题是,this index.php需要使用大的“url”查询变量在php中解码和修改它,然后使用fopen()从其他站点获取想要的页面。

我需要做所有这些,因为这两个站点需要使用相同的$\u会话、数据库和文件,而且很难完全分开。

假设您的web根目录中有
.htaccess

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/index\.php [NC]
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ index.php?url=$1%3F%1 [B,NE,L]

如果仍然发现那些
/
未编码到
%2F
.httpd.conf
配置文件中,则可能必须在服务器的
.conf
配置文件中启用,前提是您在web根目录
//code>中有
.htaccess

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/index\.php [NC]
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ index.php?url=$1%3F%1 [B,NE,L]

如果您仍然发现那些
/
未被编码到
%2F

//code>中,您可能必须在服务器的
httpd.conf
配置文件中启用。htaccess中已经有一些行,如果我只是将其添加到末尾,是否可以,或者它可能会干扰已经存在的内容?已经存在的内容包含一些重写条件,并在结尾处以[L]结束,我不知道它是做什么的,或者这些条件是否可以扩展到这些新行..?只需复制我的最后两行并粘贴到其他现有规则下面。这样它就不会损坏任何东西。我测试了:它会输出,但似乎不起作用。这可能是因为“?”字符需要转义。该站点不支持所有%变量,如%{SCRIPT_FILENAME}等。它几乎可以工作,但当我回显实际URL并查询时,它看起来像:index.php?URL=index.phpFurl=documents/pages/doc.phpFbacon=bake&this=tastes\u goods.htaccess中已经有一些行了,如果我只是在结尾加上这个,它会好吗,或者它会干扰已经存在的东西?已经存在的内容包含一些重写条件,并在结尾处以[L]结束,我不知道它是做什么的,或者这些条件是否可以扩展到这些新行..?只需复制我的最后两行并粘贴到其他现有规则下面。这样它就不会损坏任何东西。我测试了:它会输出,但似乎不起作用。这可能是因为“?”字符需要转义。该站点不支持所有%变量,如%{SCRIPT_FILENAME}等。它几乎可以工作,但当我回显实际URL并查询时,它看起来像:index.php?URL=index.phpFurl=documents/pages/doc.phpFbacon=bake&this=tastes\u good