0

バックグラウンド

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 では絶対パスを使用したくありません。

ありがとうございました!

4

1 に答える 1

0

使用されたローガンのアドバイス:

<base href="/home/script/" target="_self" />

これはバグのため、IE8 では機能しません。

于 2012-04-08T22:49:11.627 に答える