0

我有以下.HTACCESS:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

问题是当我尝试在网页中放置图像或在<head>标签中包含 CSS 或 JS 文件时,它会将所有内容路由到我的 index.php。我该如何预防/解决这个问题?

目的是将所有流量定向到我的索引,即当给定的 URL 是 domain.com/shop 或 domain.com/signup 时,它们将分别被带到 shop.php 或 signup.php。问题是当包含图像等路由到 index.php 时,它会搞砸。如果我只有一个图像标签:

<img src="/img/foobar.jpg">然后图像尝试使用属性 /img/foobar.jpg 加载 index.php。这不是我想做的。

我能想到的唯一解决方案是为每个图像硬编码 URL。IE

<img src="<?=HARDREF;?>/image.jpg">

4

2 回答 2

1
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

# if file not exists
RewriteCond %{REQUEST_FILENAME} !-f

# if dir not exists
RewriteCond %{REQUEST_FILENAME} !-d

# avoid 404s of missing assets in our script
RewriteCond %{REQUEST_URI} !^.*\.(jpe?g|png|gif|css|js)$ [NC]

RewriteRule .* index.php [QSA,L]

</IfModule>
于 2012-12-03T14:20:28.510 回答
0

尝试添加类似这样的内容来排除这些文件类型:

RewriteCond $1 !^(jpg|jpeg|gif|ico|png|css|js)
于 2012-12-03T14:18:33.050 回答