Php 重写规则htaccess不显示图像

Php 重写规则htaccess不显示图像,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,在.htaccess文件上使用RewriteRule时,我在网站上显示图像时遇到问题 简而言之,我有很多页面,其中包含要转换的GET变量。 例如: => => 我可以这样做,使用这个.htaccess Options +FollowSymLinks -MultiViews RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=3

在.htaccess文件上使用RewriteRule时,我在网站上显示图像时遇到问题

简而言之,我有很多页面,其中包含要转换的GET变量。 例如:

=>

=>

我可以这样做,使用这个.htaccess

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteRule ^categorie$ /home.php?page=categorie [L]
RewriteRule ^categorie/([^/]*)$ /home.php?page=categorie&act=view&lettera=$1 [L]
当我继续的时候,没有任何问题

当我继续时,我看不到任何样式、js和图像

因此,我添加这一行:

RewriteRule ^categorie/(css|img|jpeg|jpg|gif|png|js|svg)/(.*)?$ /$1/$2 [L,QSA,R=301]
当我继续时,我只能看到css样式。
有什么想法吗?

当你进入
/home.php?page=categorie&act=view&letta={val}
页面时,你能直接看到图像吗?除非图像路径被引用为
categorie/A
,否则图像路径应保持不变。您不需要定义文件/图像扩展名的最后一条规则


转到有问题的页面
categorie/A
,在firefox中启动
firebug
。检查丢失的图像,并使用inspect元素来调试为什么图像没有显示,可能是URL被重写了

当你直接进入
/home.php?page=categorie&act=view&lettera={val}
页面时,你能看到图像吗?除非图像路径被引用为
categorie/A
,否则图像路径应保持不变。您不需要定义文件/图像扩展名的最后一条规则


转到有问题的页面
categorie/A
,在firefox中启动
firebug
。检查丢失的图像,并使用inspect元素来调试为什么图像没有显示,可能是URL被重写了

您只需将其添加到页面HTML的
部分即可:

<base href="/" />


因此,每个相对URL都是从该URL解析的,而不是从当前页面的URL解析的。

您可以将其添加到页面HTML的
部分:

<base href="/" />


因此,每个相对URL都是从该URL而不是当前页面的URL解析的。

通过将URL重写到不同的深度,相对URL也需要更改。因此,例如,如果
/home.php?..
上工作,则对于
/category/A
,src需要更改为


最简单的选择是确保图像URL使用的路径是相对于根的路径,而不是相对于文档的路径,即通过将URL重写到不同的深度,相对URL也需要更改。因此,例如,如果
/home.php?..
上工作,则对于
/category/A
,src需要更改为

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ user.php?username=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^country/([0-9a-zA-Z]+)$ country.php?countryname=$1 [L]
url1: http://domain.com/Rocky
url2: http://domain.com/country/India 
Add <base href="../"> in country.php<head>
<head>
<base href="../">
</head>
最简单的选择是确保图像URL使用的路径是相对于根目录的路径,而不是相对于文档的路径,即

重写引擎打开
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ user.php?username=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^country/([0-9a-zA-Z]+)$ country.php?countryname=$1 [L]
url1: http://domain.com/Rocky
url2: http://domain.com/country/India 
Add <base href="../"> in country.php<head>
<head>
<base href="../">
</head>
重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D 重写规则^([0-9a-zA-Z]+)$user.php?用户名=$1[L] 重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D 重写规则^country/([0-9a-zA-Z]+)$country.php?countryname=$1[L] url1:http://domain.com/Rocky url2:http://domain.com/country/India Add-in country.php
重新编写引擎打开
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([0-9a-zA-Z]+)$user.php?用户名=$1[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^country/([0-9a-zA-Z]+)$country.php?countryname=$1[L]
url1:http://domain.com/Rocky
url2:http://domain.com/country/India 
Add-in country.php

众所周知的解决方案是添加
RewriteCond%{REQUEST\u FILENAME}-f
重写cond%{REQUEST_FILENAME}-d
到相关的
重写规则
。如果启用“重写日志”并查看文件,则可以查看服务器对每个请求的URL所做的操作。它在调试规则时确实很有帮助。众所周知的解决方案是添加
RewriteCond%{REQUEST_FILENAME}-f
重写cond%{REQUEST_FILENAME}-d
到相关的
重写规则
。如果启用“重写日志”并查看文件,则可以查看服务器对每个请求的URL所做的操作。它在调试规则时非常有用。是的,当我转到“/home.php?page=categorie&act=view&lettera={val}”时,我可以看到图像,路径是“image/logo.svg”,当我转到“categorie/A”时,路径是相同的:“image/logo.svg”,因此如果我替换为“../image/logo.svg”,我可以看到。但是如何为所有路径自动执行此操作?因此图像被引用为image/logo.svg,您可以在浏览器中粘贴资产url并访问图像?如果我转到example.com/image/logo.svg,我可以看到图像如果图像文件夹位于根web服务器文档路径中,您可以执行/image。只需添加以下内容即可解决问题:是,当我进入'/home.php?page=categorie&act=view&lettera={val}'时,我可以看到图像,路径是'image/logo.svg',当我进入'categorie/A'时,路径是相同的:'image/logo.svg',因此如果我替换为'../image/logo.svg',我可以看到。但是如何为所有路径自动执行此操作?因此图像被引用为image/logo.svg,您可以在浏览器中粘贴资产url并访问图像?如果我转到example.com/image/logo.svg,我可以看到图像如果图像文件夹位于根web服务器文档路径中,您可以执行/image。只需添加以下内容即可解决问题:可以吗你可以用解释来介绍代码段吗?你能用解释来介绍代码段吗?