Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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,假设我的网站的域名是[http://mywebsite.com][1] 这将打开index.php。该脚本从url获取$page、$section、$language变量。所以[http://mywebsite.com/index.php?lang=en§ion=home&page=sitemap][2] 以英语打开网站地图页面,该页面属于“主页”部分。我希望相同的url被重写到[http://mywebsite.com/home/sitemap_en.html][3]. 为了实现这一点

假设我的网站的域名是[http://mywebsite.com][1] 这将打开index.php。该脚本从url获取$page、$section、$language变量。所以[http://mywebsite.com/index.php?lang=en§ion=home&page=sitemap][2] 以英语打开网站地图页面,该页面属于“主页”部分。我希望相同的url被重写到[http://mywebsite.com/home/sitemap_en.html][3]. 为了实现这一点,我已经在.htaccess中添加了以下内容:
RewriteCond%{REQUEST\u URI}.+\/+
重写规则^(+)\/(++)\.html$index.php?lang=$3§ion=$1&page=$2[L]
但现在有一个巨大的问题。当我访问这样的url时,找不到文件,因为文件style.css位于根文件夹中,而不是[http://mywebsite.com/home/style.css][4] ,服务器正在那里搜索它。“home”不是真正的文件夹,也不存在,它只是一个部分。所有的jpg、png、js、gif等等都是一样的。我怎样才能以我喜欢的方式重定向页面,以及找到具有真实路径的文件

p、 美国的一些部门喜欢[http://mywebsite.com/index.php?lang=en§ion=contact][5] 根本没有页面。他们应该这样接触:[http://mywebsite.com/contact_en.html][6]
在上一条规则之后,我为他们准备了这个:RewriteRule^(+)(mk | en | al).html$index.php?lang=$2§ion=$1

您是否尝试过通过斜杠前缀,相对于顶级目录(主目录)引用css和js文件等?ie如果您将它们保存在站点主目录中名为styles的目录中:

<link rel=StyleSheet href="/styles/style.css" type="text/css" />

您可以在标题中使用标记,以便所有相对路径都不在特定的href中,因此:

<head>
    <base href="http://mywebsite.com/" />
</head>

将导致所有相对的(而不仅仅是css)URL从根目录中加载

正如其他人所说,只需在前面加一个前导“/”即可使您的路径绝对化:

<link rel="stylesheet" href="/css/mycss.css" type="text/css" />


嘿,我简直不敢相信这是多么明显:)我所有的src和href都像href=“images/design/favicon.ico”,当我把斜杠放在href=“/images/design/favicon.ico”前面时,它们加载得很好,DUH:)非常感谢兄弟。我想这会解决我所有的问题,希望新的不会发生。非常感谢这个答案,我甚至不知道基本标签的存在。现在,我不必编辑所有的HREF,它们非常多:)