HTMLページを拡張子のないWordPressページにリダイレクトしようとしています。 example.com/fa/home.html
をexample.com/fa/
にリダイレクトした結果は、404 page not found
です。ご覧のとおり、両方ともサブディレクトリにあります。
手動またはcPanelを介してこれらのURLをリダイレクトするかどうかにかかわらず、多くのアプローチを試しました。 Nginx Webサーバーを使用していることに注意してください。
example.com/en/home.html
ディレクトリにない/fa
などの別のURLをリダイレクトしようとすると、正常にリダイレクトされます。ルートフォルダーに。htaccessファイルがあり、/fa
ディレクトリーに1つあります。 /fa
ディレクトリの。htaccessファイルのすべてを削除し、デフォルトのインデックスページルールのみを残しましたが、それでも運はありません。
ルートディレクトリの.htaccess
コードは次のとおりです。
RewriteEngine on
DirectoryIndex Portal.html
RewriteEngine On
RewriteCond %{HTTP_Host} ^mscaspian.com$
RewriteRule (.*) http://www.mscaspian.com/$1 [R=301,L]
RewriteCond %{HTTP_REFERER} !^http://mscaspian.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://mscaspian.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mscaspian.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mscaspian.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://www.mscaspian.com [R,NC]
ErrorDocument 404 /404.html
/fa
ディレクトリ内のコードは次のとおりです。
DirectoryIndex index.html index.htm index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /fa/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /fa/index.php [L]
私はこれがあなたをすぐに始めると信じています:WordPressのデフォルトページがindex.phpである場合、書き換えルールが必要だとは思わない
Options +FollowSymLinks
RewriteEngine on
Redirect 301 ^/home.html http://www.mscaspian.com/fa
更新
WordPressのローカライズ
ローカリゼーションプラグインのリスト
私は上記のプラグインのリストとは一切関係ありませんが、次の目的でGoogleを使用しています
wordpressコンテンツのローカライズ
コメントに従って、すべてのページにリダイレクトルールを追加する必要があります。例:
Redirect 301 ^/about.html http://www.mscaspian.com/fa/about
Redirect 301 ^/contact.html http://www.mscaspian.com/fa/contact
前に述べたように、デフォルトのページはindex.phpであるためです。これらすべてのページはindex.phpによって処理され、リダイレクトの前に Pretty Permalinks Enabled のルールがある場合にのみ、「Pretty URL」へのリダイレクトは完全に合法です。