バックグラウンド
Apache の mod 書き換えと PHP を使用して、StackOverflow スタイルのきれいな URL を再作成しようとしています。
問題
これはうまくいきます:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ([0-9]+)$ index.php?id=$1 [L]
</IfModule>
http://localhost/home/script/5
へのリダイレクトなどの URL http://localhost/home/script/index.php?r=5
。CSS コンテンツは問題なく読み込まれます。
URL はhttp://24.68.226.186/recipes/recipe/5/seo-text
リダイレクトに似ていますが、CSS ファイルの相対パスは正しくありません。
<link rel="StyleSheet" hreF="css/theme.css" type="text/css" media="screen,print" id="css-theme" />
ディレクトリ
スクリプト (index.php) のディレクトリ構造は次のようになります。
htdocs/home/script
htdocs/home/script/.htaccess
htdocs/home/script/index.php
htdocs/home/script/css
htdocs/home/script/images
質問
mod rewrite を使用して、URL に追加されたサブディレクトリではなく、ファイルを提供するときに「スクリプト」ディレクトリを使用するように Apache に指示するにはどうすればよいですか?
言い換えれば、mod rewrite を使用して URL の「seo-text」部分を削除し、(1) [データベースから取得した] 実際のタイトルが反映されていることを確認します。(2) [必要に応じて] ブラウザを新しい URL にリダイレクトします。(3)URLのIDを超えるすべてのパスを無視するようにApacheに指示しますか?
CSS では絶対パスを使用したくありません。
ありがとうございました!