8

最近、クライアントの Web サイトに Wordpress ブログを追加しました。サブディレクトリを作成し、そこにWordpressをインストールしました。.htaccess ファイルをルート ディレクトリに追加するまでは、すべて問題なく動作していました。

RewriteEngine on
rewritecond %{http_host} ^websitename.com [nc]
rewriterule ^(.*)$ http://www.websitename.com/$1 [r=301,nc] 

今、ブログのリンクをクリックすると、次のエラーが表示されます

The webpage at http://websitename.com/blog/ has resulted in too many redirects. 
Clearing    your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with 
your computer.

この問題を解決する方法を知っている人はいますか? 私は .htaccess にまったく慣れていません。

編集: 明確にするために、301 リダイレクトは、ブログ フォルダーを除くすべてのページで正常に機能します。websitename.com と入力すると、www.websitename.com にリダイレクトされます。ただし、websitename.com/blog と入力すると、エラーが発生します。この例のブログは、Wordpress フォルダーを指しています。

4

6 に答える 6

6

「www.」を強制しようとしていると思いますか?

以下を使用します。

RewriteCond %{HTTP_HOST} ^suncoastlaw\.com
RewriteRule .* http://www.%{SERVER_NAME}%{REQUEST_URI} [R,L]

もう少し情報を得るには、私がここに書いた投稿をチェックしてください: Forcing www

于 2013-01-26T03:48:55.953 に答える
4

したい*.suncoastlaw.com/xx -> www.suncoastlaw.com/xxですか?

次に、あなたの設定

^(.*)$ http://www.suncoastlaw.com/$1

let www.suncoastlaw.com/$1 301-> www.suncoastlaw.com/$1

そのため、リダイレクトが多すぎます

への変更

rewritecond %{http_host} !www.suncoastlaw.com

www.suncoastlaw.com でない場合はリダイレクト

すべての書き換え設定の詳細は、次の場所にあります。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

トレースする方法

http://suncoastlaw.com/blog/をhttp://www.suncoastlaw.com/blog/にリダイレクトし、次に http://www.suncoastlaw.com/blog/をhttp://suncoastlaw.com/blogにリダイレクトします。 / これが問題です

$ curl -I http://suncoastlaw.com/blog/
HTTP/1.1 302 Found
Date: Sat, 26 Jan 2013 13:37:10 GMT
Server: Apache
Location: http://www.suncoastlaw.com/blog/
Content-Type: text/html; charset=iso-8859-1



$ curl -I http://www.suncoastlaw.com/blog/
HTTP/1.1 301 Moved Permanently
Date: Sat, 26 Jan 2013 13:37:21 GMT
Server: Apache
X-Pingback: http://suncoastlaw.com/blog/xmlrpc.php
Location: http://suncoastlaw.com/blog/
Content-Type: text/html; charset=UTF-8
于 2013-01-26T03:51:31.890 に答える
1

.htaccess ファイルを使用して WWW サブドメインを強制する代わりに、次の行を httpd.conf ファイルに追加してみてください。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^(127\.0\.0\.0|localhost) [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [L,R=301]

IP のみで Web サーバーにアクセスする場合は、2 行目のリストに IP を追加することもできます。もう少し説明が必要な場合は、このスレッドの回答もお読みください;)

于 2013-01-26T03:54:14.767 に答える