0

これはおそらく頻繁に尋ねられる質問であることを知っています.答えを探しましたが、私のケースに答えるものを思いつくことができませんでした. 正しい検索用語を見つけていないためだと思いますので、申し訳ありません。これが冗長である場合は... ありがとうございます!

.htaccess を使用して、URL をよりユーザー フレンドリーな形式に書き換えます。それが本当にやりたいことのすべてなので、それを行うための完全に良い方法があれば、私は学ぶことに感謝します!

ともかく; localhost/room/2 を index.php?p=room&id=2 に書き換えます。それは魅力のように機能します。

RewriteRule ^room/([0-9]*)$ /index.php?p=room&id=$1 [L]

おそらく、私の問題はすでにおわかりでしょう。room/room_number を使用して仮想フォルダーを作成しています。したがって、たとえば、IMG-Tag を使用して画像を含めると、その src-Attribute も、サーバーが想定する作業ディレクトリに合わせて書き換えられます。

localhost/img/image.jpg

それは要求します

localhost/room/img/image.jpg

これは明らかに適切な場所ではありません。私の質問は次のとおりです。ページのリソースを元のパスにリダイレクトすると同時に、URL を適切で使いやすいものに書き換えるにはどうすればよいですか?

4

2 に答える 2

1

パスの先頭にスラッシュを追加して、ルート ディレクトリからの相対パスを使用します。

<img src="/img/image.jpg" />
于 2013-03-07T23:09:03.650 に答える
1

この問題に対するもう 1 つの (そしてかなり標準的な) 解決策は、RewriteCond を追加して、実際に存在するリソースが要求されたときにルールが適用されないようにすることです。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^room/([0-9]*)$ /index.php?p=room&id=$1 [L]
于 2013-03-08T13:30:52.720 に答える