将URL重定向到具有不同字符的相同URL

时间:2013-07-19 03:46:27

标签: apache .htaccess mod-rewrite

好的,所以我想在我的网站上实现301重定向..这是我到目前为止的代码

RedirectMatch 301 ^/games/(.*)/(.*)$ http://mysite.com/apps/$1/$2

问题是旧网站上的第二个参数使用下划线(ex brain_puzzle),我试图将其重定向到“脑难题”。例如:

http://mysite.com/games/brain_puzzle/4-pics-1-word/

将重定向到

http://mysite.com/apps/brain-puzzle/4-pics-1-word/

知道我怎么能这样做吗?

2 个答案:

答案 0 :(得分:0)

如果仅仅是针对特定情况,您可以执行this answer中的操作:

RedirectMatch 301 ^/games/brain_puzzle/(.*)$ http://mysite.com/apps/brain-puzzle/$2

如果它更通用(不同于brain_puzzle的字符串),this answer的某些变体可以帮助您。

答案 1 :(得分:0)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

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

RewriteRule ^(games)/([^_]+)_(.*)$ /$1/$2-$3 [L,NC]

RewriteRule ^games/([^/_]+)/([^/_]*)/?$ /apps/$1/$2 [L,NC,R=301]

在执行301重定向之前,此代码将递归替换所有带有连字符的下划线。