1

次の 301 リダイレクトを実行しようとしています。

/blog/ is not redirected.
/blog/xxxxx/ is redirected to /blog/
/blog/page/x is not redirected

私は正規表現の専門家ではなく、かなりの数のスタックオーバーフローの投稿を掘り下げた後、これを思いつきました:

RedirectMatch 301 /blog/((?!page/.*)[0-9a-zA-Z\-]{1,})*/ http://www.xxxxxxx.com/blog/

これは私の mac では機能しますが、何らかの理由で私の PC の chrome では機能しません (IE と同じように、/blog/ ページで無限ループが報告されます)。

[0-9a-zA-Z\-]{1,}私はもともとこれをセクションなしで、より単純な方法で書いていました。これを含めて、chrome@windows の無限ループの問題を修正しようとしました。

編集:オンラインの正規表現ツールでもテストしましたが、問題なく動作するようです: http://imgur.com/pSRCn5b

誰でもポインタを提供できますか?

4

1 に答える 1

1

最初にブラウザーのキャッシュをクリアし、テストで R=302 を使用します。

これには mod_rewrite を使用することをお勧めします。

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(blog)/([^/]+)/?$ /$1 [L,R=302,NC]

正常に動作していることを確認したら、 に置き換えR=302ますR=301R=301mod_rewrite ルールのテスト中は (Permanent Redirect) を使用しないでください。

于 2013-07-02T13:53:06.430 に答える