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>

問題は、Web ページに画像を挿入しようとしたり、タグに CSS または JS ファイルを含めようと<head>すると、すべてが 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 をハードコードすることです。すなわち

<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 に答える