2013-10-24 105 views
0

我已將HTML網站更改爲WordPress安裝。.htaccess用名稱中的空格重定向舊的html頁面

舊的.html鏈接已被重定向到正確的wordpress頁面。這個舊網站顯然是由一隻猴子建造的,它在ons.html上有一個頁面。沒錯,它在文件名中有一個空格。所以,現在,我在/over%20ons.html上收到外部請求。我無法弄清楚我在.htaccess中如何解決這個重定向問題。它必須參考的頁面是/ over-ons /。

這是我的.htaccess至今:

RedirectMatch 301 ^/([^/.]+)\.html$ /$1/ 
Redirect 301 /over%20ons.html http://www.sterkermerk.nl/over-ons/ 
Redirect 301 /index.html http://www.sterkermerk.nl/ 
# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

第二行包含了規則。我試圖逃避%20,嘗試在RedirectMatch中使用正則表達式,但我無法使它正常工作。

有人有想法嗎?

回答

0

使用mod_rewrite,而不是mod_alias中(Redirect語句),因爲你已經使用了mod_rewrite,他們會相互衝突:

RewriteRule ^over\sons\.html$ http://www.sterkermerk.nl/over-ons/ [L,R=301] 
RewriteRule ^index\.html$ http://www.sterkermerk.nl/ [L,R=301] 
RewriteRule ^([^/.]+)\.html$ /$1/ [L,R=301] 

(更換Redirect *語句)

URI是在通過重寫規則發送前解碼,因此您不需要使用%20,只需要\s\即可匹配空格。

+0

感謝您回答Jon Lin,我已經用您的代碼更新了我的.htaccess。但是,當我導航到http://www.sterkermerk.nl/over%20ons.html它仍然無法正常工作。 – veelen

+0

@veelen實際上,你甚至不需要第二個規則,第一個規則應該匹配所有東西 –

+0

然後它不會重定向到/ over-ons /但是到/ over%20ons/ – veelen

相關問題