1

次の URL を持つサーバー上にある modx を使用してバックエンドを作成しました。

http://www.server.com/company-name/en/pages/

サイトのライブ バージョンには、/en/ ディレクトリを指すドメインがあります。したがって、正しいアクセスのためには、次の場所に移動する必要があります。

http://www.domain.com/en/pages/

しかし、modx は依然として "company-name" フォルダーをすべてに追加します。次に、存在しないページを指します。

.htaccess で次のようにすると、ページがリダイレクト ループに入り、エラーが発生します。

RewriteEngine On
RewriteBase /de/pages/
RewriteCond %{HTTP_HOST} .

RewriteCond %{HTTP_HOST} !^domain\.com/company-name/en/pages/ [NC]
RewriteRule (.*) http://www\.domain\.ch/en/pages/$1 [R=301,L]

これを正しく機能させるにはどうすればよいですか?ディレクトリ「会社名」がURLの一部にならないようにするには?

4

1 に答える 1

2

Host フィールドにはパス情報が含まれておらず、ホスト名のみが含まれているため、 のように%{HTTP_HOST}なることはありません。domain\.com/company-name/en/pages/あなたが望んでいるのは:

RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteRule ^company-name/(.*)$ http://www.domain.com/en/pages/$1 [L,R=301]

htaccess ファイルとこれらのルールをサイトのドキュメント ルートに配置する必要がありますwww.server.com

于 2013-10-29T10:41:32.583 に答える