1

ユーザーがURLAを要求したときに、コンテンツがURL Bから取得されるように、自分のサイトの.htaccessで書き換えを作成したいのですが、ユーザーはURLをURLAとして表示します。

たとえば、mydomain.com / projects/project-exampleにコンテンツがあるとします。ユーザーがmydomain.com/project-exampleを要求できるようにしたいのですが、アドレスバーにそのURLが表示されますが、ブラウザーにはmydomain.com/projects/project-exampleのコンテンツが表示されます。

私はいくつかの.htaccess書き換えのヒントとFAQを調べましたが、残念ながら、それらのどれも私が上で説明したものの正確な解決策を提示していないようでした。私のドメインのすべてが/projects/ディレクトリから取得されるわけではないので、すべてのURLに/ projects /が追加されないように、ページが最初に存在するかどうかをリライトで確認する必要があると思います。私は本当に困惑しています。

書き直しが私が必要としているものと正確に一致しない場合、またはこの問題の簡単な解決策がある場合は、それを聞いてみたいです。

4

1 に答える 1

1

このチュートリアルには、あなたが求めているものに正確に対処することを含め、必要なものがすべて含まれている必要があります:http: //httpd.apache.org/docs/2.0/misc/rewriteguide.html。それは単に用語の問題かもしれません。

たとえば、mydomain.com / projects/project-exampleにコンテンツがあるとします。ユーザーがmydomain.com/project-exampleを要求できるようにしたいのですが、アドレスバーにそのURLが表示されますが、ブラウザーにはmydomain.com/projects/project-exampleのコンテンツが表示されます。

次のようなもので:

RewriteRule ^project-example$ /projects/project-example [L]

誰かがhttp://mydomain.com/project-exampleを要求し、URI/project-exampleが内部的にに書き換えられた場合/projects/project-example。これが.htaccessファイルにある場合、URI/project-exampleは照合時に先頭のスラッシュを削除することに注意してください。

もののディレクトリがある場合は、正規表現と後方参照を使用できます。たとえば、 http: //mydomain.com/stuff/へのリクエストを次の場所にマップする必要があり/internal/stuff/ます。

RewriteRule ^stuff/(.*)$ /internal/stuff/$1 [L]

したがって、http://mydomain.com/stuff/file1.html、http://mydomain.com/stuff/image1.pngなどのリクエストは、などに書き換えられます。/internal/stuff/file1.html/internal/stuff/image1.png

于 2012-05-09T20:33:12.760 に答える