2016-12-07 74 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