私はdiscountasp.net(標準の.netウェブホスト)によってホストされているドメインを持っています。それをhttp://example.comと呼んでください。asp.net web.configファイルのサブディレクトリの外観を削除するためのURLルールを書き換えます。
ドメインには既定のWebサイトがホストされていますが、さらに別のWebアプリケーションがいくつかあります。
ウェブサイトはWordpressで作成され、ホスト上のドメインのルートディレクトリの/ wordpressサブディレクトリにあります。
ユーザーがブラウザに表示するURLに/ wordpressが存在しないようにしたいと思います。以前は、ルートディレクトリにhttp://example.com/の要求をhttp://example.com/wordpress/にリダイレクトするindex.htmlファイルがありました。しかし、もちろんリダイレクトだけで、ブラウザのURLバーにhttp://example.com/wordpress/が残っています。
私は、ルートディレクトリのWeb.configファイルでURL書き換えルールを使って私が望むことを達成できると思いました。以下はそのファイルのテキストです。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="wordpress redirect a"> <match url="wordpress/(.*)"/> <action type="Rewrite" url="{R:1}"/> </rule> <rule name="wordpress redirect b"> <match url=".*"/> <conditions> <add input="{REQUEST_URI}" pattern=".*nm.*" matchType="Pattern" negate="true" ignoreCase="false"/> <add input="{REQUEST_URI}" pattern=".*survey.*" matchType="Pattern" negate="true" ignoreCase="false"/> </conditions> <action type="Rewrite" url="wordpress/{R:0}"/> </rule> </rules> </rewrite> </system.webServer> </configuration>
ファイルのロジックは次のとおりです。
最初のルール:URLパス(ホストの後の部分は:ポート/)場合
wordpress/
で始まり、それが削除されますwordpress/
となり、wordpress/
の後ろにある部分だけで処理ルールが継続されます。第2のルール:特別なウェブアプリケーション文字列「nm」または「survey」を含まないURLパスの場合は、パスの先頭に
wordpress/
を置きます。
これは私がブラウザバーにhttp://example.com/を置けば、それは正しくウェブサイトを示しており、また、この書き換えは、http://example.com/nm/などのWebアプリケーションの呼び出しに干渉しないという意味で、作品...
しかし、それでもユーザーが見るURLに/ wordpressが残っています(つまり、ブラウザバーにhttp://example.com/を置くと、ブラウザバーにはhttp://example.com/wordpress/となります)。私は書き換えルールが何をしているのか誤解しています。しかし、私の理解(そして私がこれらのルールで達成しようとしたこと)は、 wordpress/
が含まれていないURL(私の特別なWebアプリケーションのURLを除く)は/wordpress
を含むように内部的に処理されますが、/wordpress
を含まない元のURLとしてクライアントに返されます。そう、リダイレクトではなく、ちょうど内部の偽善者。ウェブサイト内のリンクには/wordpress
が含まれており、/wordpress/wordpress
を取得したくないため、追加する前に削除する必要があるため、最初のルールがあります。
しかし明らかに私は何かを誤解しています。
別の手がかりは、私がURL http://example.com/about/を使用したときに2番目のルールがその仕事をしているように見えないということです。 2番目のルールは、これがhttp://example.com/wordpress/about/のように動作するはずですが、代わりに404エラーが見つかりません。しかし、私がhttp://example.com/wordpress/about/をブラウザバーに入れた場合、そのWebページが正しく表示されます。だから私は混乱している。
なぜ説明なしのdownvoteですか? –