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
Php 如果页面调用位于子目录中,则移动站点重写规则对于站点的转换版本无法正常工作_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 如果页面调用位于子目录中,则移动站点重写规则对于站点的转换版本无法正常工作

Php 如果页面调用位于子目录中,则移动站点重写规则对于站点的转换版本无法正常工作,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我的问题有点难以解释,但我认为这与重写规则有关。基本上,我有一个脚本,可以将一个标准站点转换为一个移动站点。谷歌代码上的开发人员并不真正支持该代码,所以我想我可能会在这里得到一些帮助。我对它进行了一些重新编码,以便它能与今天的手机配合使用 只要它必须访问的页面都不在子目录中,它就可以正常工作 例如,该站点是www.mysite.com,脚本位于子域中 m、 mysite.com脚本从主站点获取页面,但似乎是从移动站点提供的,例如URL m.mysite.com/mypage.php 将工作良好,

我的问题有点难以解释,但我认为这与重写规则有关。基本上,我有一个脚本,可以将一个标准站点转换为一个移动站点。谷歌代码上的开发人员并不真正支持该代码,所以我想我可能会在这里得到一些帮助。我对它进行了一些重新编码,以便它能与今天的手机配合使用

只要它必须访问的页面都不在子目录中,它就可以正常工作 例如,该站点是www.mysite.com,脚本位于子域中 m、 mysite.com脚本从主站点获取页面,但似乎是从移动站点提供的,例如URL m.mysite.com/mypage.php 将工作良好,该页面上的任何链接都可以

但是,如果页面位于像m.mysite.com/blog/myblog.php这样的目录中,它将访问该页面,您将在我们的url中看到/blog,但是您单击的页面上的所有链接都将显示404,因为它们都链接为m.mysite.com/myblog.php,而不是m.mysite.com/blog/myblog.php,所以它似乎不知道该页面位于/blog中,尽管它显然位于url为什么不在页面上的链接中

有什么办法可以解决这个问题吗?这是一个规则问题吗?htaccess如下所示

DirectoryIndex phpmobilizer.php

Options +FollowSymlinks
RewriteEngine On

#RewriteCond %{REQUEST_METHOD} =POST
#RewriteRule ^ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ phpmobilizer.php?url=$1 [QSA]
我的另一个问题是,如果它调用一个带有表单的页面,它将不会发布我得到404如果我使用我已注释掉的规则,如果我不添加它们,它将只重新加载页面,而不会发布。也许这两个问题在某种程度上是相关的,我希望一些专家能帮我解决这一切


我尽量简短,但解释起来有点棘手。

我不太确定它是否适合你。它适用于我的wordpress页面。试试这个:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?yoururl.com$
RewriteRule ^(/)?$ yoursubdirectory [L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/kml/(.*)$ [OR]
RewriteRule ^.*$ - [L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
重新编写引擎打开
重写cond%{HTTP_HOST}^(www.)?yoururl.com$
重写规则^(/)?$yoursubdirectory[L]
重新启动发动机
重写基/
RewriteCond%{REQUEST_URI}^/kml/(.*)$[或]
重写规则^.*$-[L]
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
干杯


Eric

谢谢你,这不会起作用,不是文字印刷,离cms或博客最远。。。我想我所需要的只是对我所拥有的东西进行一点修改,因为它主要是在post上工作的,而单独的目录不能正常工作。