3

OK みんな、私は文字通り私を夢中にさせている問題を抱えています。何が起こったかは次のとおりです。

私は自分のウェブサイトの URL を書き直すことにしました。

この構文から書き直すことになっています:

http://www.sample.com/programming.php?name=something

これに:

http://www.sample.com/tutorials/programming/something.php

または (例 2) :

http://www.sample.com/other.php?name=test

これに:

http://www.sample.com/tutorials/other/test.php

したがって、私の URL 構文は次のようになります。

http://www.sample.com/tutorials/ (自分のファイルの名前)/(変数の名前).php

私は次のコードを試しました:

RewriteEngine On
RewriteRule ^tutorials/programming/(.+)$ /programming.php?name=$1 [L]
RewriteRule ^tutorials/other/(.+)$ /other.php?name=$1 [L]

ただし、URL を適切に書き換えません。詳細な説明は次のとおりです。

したがって、元のサイトにアクセスすると、次のように表示されます。

http://www.sample.com/programming.php?name=something

この URL にアクセスすると:

http://www.sample.com/tutorials/programming/something.php

Web サイトの HTML は表示されますが、CSS レイアウトはありません (HTML のみが表示されます)。また、CSS 以外のサイトの他のリンクをクリックすると、エラー 404 が表示されます。

http://www.something.com/index.php (正しい index.php URL)

しかし、それはこのようなものです:

http://www.sample.com/tutorials/programming/index.php (存在しません)。

オンラインで 10 以上のチュートリアルを読み、同僚に助けを求めましたが、彼の解決策もうまくいきませんでした。したがって、私が達成したいのは、URL を書き換えることだけです。そのため、ユーザーがプログラミングのチュートリアルを選択したときに、アドレス バーにこの URL が表示されません。

http://www.sample.com/programming.php?name=something

でもこれは :

http://www.sample.com/tutorials/programming/something.php

それが私が望むすべてです。

できるだけ詳しく説明するように努めました。追加の詳細が必要な場合は、お知らせください。

前もって感謝します!

4

2 に答える 2

2

WebサイトのHTMLを取得しましたが、CSSレイアウトがありません(HTMLのみが表示されています)。また、CSS以外のサイトで他のリンクをクリックすると、エラー404が発生します。index.phpサイトのURLは、想定どおりではないことに注意してください。

ページコンテンツにある相対パス/絶対パスは、余分なスラッシュのために異なるベースを取得しています。のようなものがある場合<img src="images/blah.gif">、相対ベースはブラウザが参照するURLから派生します(サーバーによって内部的に書き換えられるものではありません)。したがって、ブラウザに次が表示される場合http://www.sample.com/programming.php?name=something、URIは/programming.phpであり、URIベースは/です。しかし、ブラウザがを認識した場合http://www.sample.com/tutorials/programming/something.php、URIは/tutorials/programming/something.phpであり、URIベースは/tutorials/programming/になります。これは、images / css / scripts / etcが配置されている場所ではないと思います(そのディレクトリはおそらく存在しないため)。

以下を追加して、すべてのページヘッダーのURIベースを修正する必要があります。

<base href="/">

または、すべての相対リンクを絶対リンクに変更します。

于 2012-09-13T17:22:24.733 に答える
0

WebサイトのHTMLを取得しましたが、CSSレイアウトがありません(HTMLのみが表示されています)

どのようにCSSを含めましたか?方法でファイルを含めましたか

../../css/file.css

または絶対モードで

/css/file.css?

本当に何が問題なのかを確認するために(タスクでの書き換えの成功を推測します。たとえば、正しい方法で理解できませんでした)、実際のURIを教えていただけますか?

于 2012-09-13T17:22:51.737 に答える