次のようなフラットリンクを使用したい:
http://somedomain.com/about-us
http://somedomain.com/products-list
http://somedomain.com/product/item
したがって、次のような mod_rewrite ルールを使用しました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z-]+)?$ /index.php?page=$1 [L]
RewriteRule ^([0-9A-Za-z-]+)/([0-9A-Za-z-]+)?$ /index.php?page=$1&value=$2 [L]
</IfModule>
最初の 2 つのリンクは正常に機能しています。しかし、3 番目のタイプのリンクにアクセスするたびに、相対パスとしてリンクされている画像、css、または任意の js スクリプトが表示されます。<img src="images/image.jpg">
と<a href="about-us">About Us</a>
。
http://somedomain.com/product/images/image.jpg
ブラウザはそれが と にあると考えhttp://somedomain.com/product/about-us
ます。
正しいパスはhttp://somedomain.com/images/image.jpg
、http://somedomain.com/about-us
したがって、相対リンクを含むファイルは機能しません。
この問題を解決するにはどうすればよいですか? リンクされたすべてのファイルに対して、相対パスではなく完全パスを使用したくありません。.htaccessでいくつかの微調整を行う方法を提案してください