/ /静的URLを小さなURLにリダイレクトする方法-.htaccess、mod-rewrite、http-status-code-404

静的URLを小さなURLにリダイレクトする方法-.htaccess、mod-rewrite、http-status-code-404

最近、サイトのURL構造を変更しました。しかし、グーグルのインデックス付きURLは404notfoundエラーを出している。今、私は助けを求めて得ました 提案 このような。

  RewriteRule ^([a-z|-]+)t(d{3}-d+.html)$ /topic$2 [NC,R=301,L]

しかし、そのために、「Firefoxエラーが発生します。「Firefoxは、サーバーがこのアドレスの要求を決して完了しない方法でリダイレクトしていることを検出しました。」

私の以前のコードは次のようなものです:

# FORUMS PAGES
###############
# FORUM INDEX REWRITERULE WOULD STAND HERE IF USED. "forum" REQUIRES TO BE SET AS FORUM INDEX
# RewriteRule ^forum.html$ /index.php [QSA,L,NC]
# FORUM RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(page([0-9]+).html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]
# TOPIC WITH VIRTUAL FOLDER RewriteRule ^[a-z0-9_-]*-f([0-9]+)/topic([0-9]+)(-([0-9]+))?.html$ /viewtopic.php?f=$1&t=$2&start=$4 [QSA,L,NC]
# GLOBAL ANNOUNCES WITH VIRTUAL FOLDER RewriteRule ^announces/topic([0-9]+)(-([0-9]+))?.html$ /viewtopic.php?t=$1&start=$3 [QSA,L,NC]
# TOPIC WITHOUT FORUM ID & DELIM RewriteRule ^([a-z0-9_-]*)/?topic([0-9]+)(-([0-9]+))?.html$ /viewtopic.php?forum_uri=$1&t=$2&start=$4 [QSA,L,NC]
# PROFILES ADVANCED RewriteRule ^[a-z0-9_-]*-u([0-9]+).html$ /memberlist.php?mode=viewprofile&u=$1 [QSA,L,NC]
# USER MESSAGES ADVANCED RewriteRule ^[a-z0-9_-]*-u([0-9]+)-(topics|posts)(-([0-9]+))?.html$ /search.php?author_id=$1&sr=$2&start=$4 [QSA,L,NC]
# GROUPS ADVANCED RewriteRule ^[a-z0-9_-]*-g([0-9]+)(-([0-9]+))?.html$ /memberlist.php?mode=group&g=$1&start=$3 [QSA,L,NC]
# POST RewriteRule ^post([0-9]+).html$ /viewtopic.php?p=$1 [QSA,L,NC]
# ACTIVE TOPICS RewriteRule ^active-topics(-([0-9]+))?.html$ /search.php?search_id=active_topics&start=$2&sr=topics [QSA,L,NC]
# UNANSWERED TOPICS RewriteRule ^unanswered(-([0-9]+))?.html$ /search.php?search_id=unanswered&start=$2&sr=topics [QSA,L,NC]
# NEW POSTS RewriteRule ^newposts(-([0-9]+))?.html$ /search.php?search_id=newposts&start=$2&sr=topics [QSA,L,NC]
# THE TEAM RewriteRule ^the-team.html$ /memberlist.php?mode=leaders [QSA,L,NC]

#####################################################

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9_-]+)/?(page([0-9]+).html)?$ /viewforum.php?forum_uri=$1&start=$3 [QSA,L,NC]

私が必要としているのはこれです:このようなURLをリダイレクトします。

投稿者: www.mydomain.com/topic-titles-here-t273.html

To: www.mydomain.com/topic273.html

投稿者: www.mydomain.com/topic-titles-here-t273-15.html

To: www.mydomain.com/topic273-15.html

投稿者: www.mydomain.com/51-topic-titles-here-t273-15.html(観察、タイトルの51のような数字)

To: www.mydomain.com/topic273-15.html

私を案内してください。

回答:

回答№1は0

これを試して:

RewriteCond %{REQUEST_URI} !^/topic[0-9-]+.html$
RewriteRule ^([a-z|-]+)t(d{3}-d+.html)$ /topic$2 [NC,R=301,L]

これにより、新しいURLが書き換えられるのを防ぐことができます。