2016-12-07 107 views
0

我有一个简单的.htaccess需求,我失败了,并会欣赏一个指针。正则表达式.htaccess

来自旧CMS的内容正在迁移到WordPress。老CMS的帖子被格式化以下列方式:

{postid}-example-post-title 

101-this-is-an-old-post 

我有一个在理论上旧后ID与新的WordPress后的ID,这样的映射表\{oldid-*}应该映射很适合WordPress的标准\?p={newid}格式。我希望下面的工作重定向旧网址101 - 这 - 是最后WordPress的发布1660:

Redirect 301 /101-.*$ /?p=1660 

的正则表达式匹配/101-.*$正确的,但由于某种原因我的.htaccess文件似乎无法识别正则表达式。这是我的全htaccess文件:

RewriteEngine Off 
SetEnv DEFAULT_PHP_VERSION 56 
DirectoryIndex index.cgi index.php 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Redirect 301 /101-(.*) /?p=1660 

我已经试过移动重定向到文件的顶部,该文件的底部与IfModule块无济于事之间。我显然缺少一些东西 - 任何想法赞赏

+1

重定向不指望正则表达式(请参阅doc)。改用RedirectMatch或URL重写(RewriteRule)。 – julp

回答

0

根据上面的julp的评论,解决这个问题是使用RewriteRule。以下工作正确,放置与IfModule块:

RewriteRule 301 /101-(.*) /?p=166