php - .htaccess RewriteEngine 破坏 CSS/图像

标签 php .htaccess url-rewriting

我成功地将脏网址重写为干净网址,但这也破坏了我的图像和样式文件夹:(

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /www/index.php?page=$1&cmd=$2 [L]

最佳答案

添加以下重写条件,以防止重写导致现有文件和目录的 URL,例如您的 JS、CSS 和图像文件。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ /www/index.php?page=$1&cmd=$2 [L]

如果您的图像仍然没有显示,可能是因为您包含了如下图像:<img src="./img/myimage.png" /> 。如果您现在将浏览器指向 http://site.com/page/hello/ ,您的浏览器将在此处查找图像:http://site.com/page/hello/img/myimage.png 。然而,图像实际上在这里:http://site.com/img/myimage.png .

因此,您必须包含这样的图像:<img src="/img/myimage.png" /> (域名后面的所有内容)。 这将迫使浏览器在正确的位置查找。 (假设你的目录结构是这样的。)

关于php - .htaccess RewriteEngine 破坏 CSS/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793690/

相关文章:

php - 如何在 Ajax 站点上使用 file_get_contents

php - 在 PHP & MySQL 中使用两个表来显示一个循环结果

php - 帮助理解为什么这个重写不起作用?

.htaccess - htaccess 将 4 个特定页面重定向到 https

wordpress - 通过 Wordpress Rewrite 或 .htaccess 重写 URL

ruby - 将 URL 前缀重写为 HTTP header

php - 如何在一张表mysql php中加入行

php - mysql_connect() : No such file or directory

apache - .htaccess 的 RewriteRule,末尾带有斜杠

php - 302 重定向是如何发生的?