私はJoomla 1.5.9をPHP 5.2.8で動作させています。私はSEO設定 "Search Engine Friendly URL"と "Use Apache mod_rewrite"が正しく動作しています。IIS7でJoomla検索エンジンに優しいURLの問題
私はまた、ホストされたサイト(www.mochahosting.com)を設定しています。彼らは、Joomla 1.5.5、php 5.2.6、mySQL 5.0.4xという、同じソフトウェアの若干古いバージョンを使用しています。また、IIS7を使用していますが、Windows 32でも稼働しています。ののSEO設定を取得することはできません。ローカルマシン上で動作するSEO設定を取得しました。同じ構成)。物事をシンプルに保つために、「検索エンジンフレンドリURL」から始めましょう。
また、私はまだドメイン名を持っていないので、ホストファイルのエイリアスを使用してサイトにアクセスします。私は誰もがその問題を解決するために苦労することを期待していないので、私は問題を説明し、私は人々が何が起こっているのかを理解できる十分な仕事をすることを願っています。この質問の目的で、http://nodomainyet.com/joomla156_mxをベースURL(joomlaのホームページ)として使用します。はい、これは、Joomlaがサブディレクトリにインストールされていることを意味します - これは問題であるかどうかはわかりません(私の開発ボックスでは問題ありません)。
問題が発生しました。
「検索エンジンフレンドリーなURL」をオンにすると、http://nodomainyet.com/joomla156_mxは404(「コンポーネントが見つかりません」)を生成します。 404エラーページにはhttp://nodomainyet.com/joomla156_mx/index.phpにリンクがあり、そのリンクが機能します。 「Search Engine Friendly URLs」をオフにすると、http://nodomainyet.com/joomla156_mxとhttp://nodomainyet.com/joomla156_mx/index.phpの両方が機能します。だから、私が(各種メインメニューのリンクに移動しhttp://nodomainyet.com/joomla156_mx/index.phpにし、そこから行く場合、「エンジンフレンドリーなURLを検索する」をオンにすると、今すぐに動作を停止するhttp://nodomainyet.com/joomla156_mx/index.phpからhttp://nodomainyet.com/joomla156_mxの「自動リダイレクト」...
を起こしているようです私は新しいjoomlaのインスタンスでインストールされるデフォルトのjoomlaサイトを使用しています)、すべて正常に動作します。 http://nodomainyet.com/joomla156_mxに行くと動作しません。メインメニューにある "home"リンクはデフォルトでhttp://nodomainyet.com/joomla156_mxになります。 「使用を - 2番目のSEOの設定をオンに私は私のdevのボックスのように、ホスト上のphpinfoの出力を比較してきたし、この問題の原因となる任意の違いを見ることができなかった
...
Apache mod_rewrite "は問題を解決しません(その設定の目的はURLのindex.phpを取り除くことだからだと思います)。
"検索エンジンフレンドリURL"は、通常、仕事に慣れていないようです - web.configと書き換えルールは必要ありません...どうしたら間違ってしまうのか分かりません。
アップデート - 2009-03-03
私は多分それだけで( "使用のApacheのmod_rewriteから最初のSEOの設定(「検索エンジンフレンドリーなURL」)をオンにする悪い考えだと思いました")(私のローカルマシン上で" Search Engine Friendly URL "だけをオンにしても問題ありませんが)。だから私はいくつかの実験を試しました
おそらく問題はURLの書き換えがホスト上のIIS7で正しく設定されていないと考えられたことです。私はhttp://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-moduleに記載されている(最初の)テストファイルを実行しています。つまり、URLの書き換えが機能しています。
次に、IIS7上のJoomlaで見られるリライトルールをサブディレクトリを考慮して書き直す必要があると考えました。上記のように、SEOの設定はローカルマシンで正常に動作しています。 Joomlaはサブディレクトリにもインストールされており、すべて正常に動作しています。それにもかかわらず、私は(すなわち、条件とアクションにディレクトリ名を付加)
<rewrite>
<rules>
<rule name="Imported Rule 1" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{SCRIPT_NAME}" negate="true" pattern="^/index.php" ignoreCase="false" />
<add input="{SCRIPT_NAME}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
から
<rewrite>
<rules>
<rule name="Imported Rule 1" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{SCRIPT_NAME}" negate="true" pattern="^/joomla156mx/index.php" ignoreCase="false" />
<add input="{SCRIPT_NAME}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="joomla156mx/index.php" />
</rule>
</rules>
</rewrite>
に書き換えルールを変更しようとしました。それは違いはありませんでした。さて、ルールを書き直すのは全く新しいので、何かを犯したかもしれません。
私はそれがリダイレクトルールがないことは疑いの種だと思います。つまり、&を「書き直した」URLを貼り付けると、作成されたURLであることをサーバーに伝える必要はありません。実際のURLにリダイレクトする必要がありますか?しかし、もう一度、これは普通の古い書き換えルールでローカルのボックスでうまく動作しているので、間違ったツリーで吠えているかもしれません。
ありがとうございました!
答えに感謝します。しかし、私はローカルのマシンとホストされたサイトの両方ですでに同様の指示に従っています。ローカルマシンでは動作していますが、ホストされたサイトでは動作していません...だから、ホストされたサイトでこれを診断する方法についてもう少し詳細が必要です。 – Jimmy