web-dev-qa-db-ja.com

.htaccessファイルを使用して拡張子のないHTMLページをリダイレクトするコードは、404エラーになります

HTMLページを拡張子のないWordPressページにリダイレクトしようとしています。 example.com/fa/home.htmlexample.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]
1
Conspiria

私はこれがあなたをすぐに始めると信じています:WordPressのデフォルトページがindex.phpである場合、書き換えルールが必要だとは思わない

Options +FollowSymLinks
RewriteEngine on

Redirect 301 ^/home.html http://www.mscaspian.com/fa

更新

WordPressのローカライズ
ローカリゼーションプラグインのリスト

私は上記のプラグインのリストとは一切関係ありませんが、次の目的でGoogleを使用しています

wordpressコンテンツのローカライズ


更新2
一般的なリダイレクトのリスト

コメントに従って、すべてのページにリダイレクトルールを追加する必要があります。例:

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」へのリダイレクトは完全に合法です。

1
eyoung100