WindowsサーバーのIISでは、Apachの「.htaccess」が利用できません。
.htaccessが設定できないということは、Wordpressのパーマリンクが柔軟に設定できないため、GET方式(p=1などのパラメーター)をメインで利用することになります。
今の検索エンジン上では、SEO的に問題はないみたいですが、静的ページまでもp=xxxだと、見た目が悪いですよね。
そこで、「web.config」を設定することで、Wordpressのパーマリンクを柔軟に設定する方法を試しました。
IISでWordpressのパーマリンクを設定する
IIS Rewrite 2.0のインストール
まずは、IIS Rewrite 2.0をインストールします!が、IISのバージョンによっては、インストールエラーになります。
Windows 10のIISでは、バージョンが新しすぎてインストールできません。
レジストリのバージョン番号を下げて、一時的に古いIISと認識させる必要があります。
regedit(レジストリ編集)
・HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp を探す ・MajorVersionの項目を、10から9(10進数)へ変更 ・IIS Rewrite 2.0のインストール ・MajorVersionの項目を、9から10(10進数)へ戻す
以上で、IIS Rewrite 2.0がインストールできました。
その後、サイトのルートパスに「web.config」を設置します。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Main Rule" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
これで、パーマリンクにカテゴリー名、投稿記事名など設定できるようになりました。
正し、このままでは、日本語のURIで404エラーになってしまいます。
文字コードの関係でしょうか?
IIS 8.5 + WordPress 環境で URL をカスタマイズする: ある SE のつぶやき
こちらの記事を参考にさせていただきました。
レジストリを設定するだけ、問題解決しそうです。
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO
無事に日本語もパーマリンクに設定することができました。
これで、Windows IIS上のWordpressが、Linux Apache、Nginx上のWordpressと同じ動作をするようになりました。
忙しい後輩の頼みで、今回IIS版Wordpressを触ってみましたが、分からないことだらけでとても勉強になりました。
エンジニアは、実務から離れてはいけないと痛感しました。。。