2012-05-29 31 views
0

在wordpress博客中我想將所有新註冊重定向到自定義註冊頁面。如何格式化GET重定向的RewriteRule?

而不是

www.example.com/wordpress/wp-login.php?action=register

我想送他們到

www.example.com/wordpress/register

到目前爲止我用

RewriteRule ^wordpress/wp-login.php?action=register$ www.example.com/wordpress/register [NC,L] 

但它不工作:(

我也試過這個規則;

RewriteCond %{QUERY_STRING} ^action=register$ 
RewriteRule ^wp-login[.]php$ /register [R,NC,L] 
+1

當然它不會工作:1)'RewriteRule'模式與URL ** **只,這是'^ WordPress的/ WP的路徑部分作品-login.php' 2)要匹配查詢字符串使用'RewriteCond%{QUERY_STRING}模式' – LazyOne

+0

謝謝lazyone,但你有任何工作的例子嗎? – numediaweb

回答

2
RewriteEngine On 

RewriteCond %{QUERY_STRING} ^action=register$ [NC] 
RewriteRule ^wordpress/wp-login.php$ http://www.example.com/wordpress/register? [L,R=301,NC] 

1)這將重定向http://www.example.com/wordpress/wp-login.php?action=registerEXACTLYhttp://www.example.com/wordpress/register。 2)我建議在測試過程中使用302重定向代碼,而不是301,直到您確認其按預期工作(因爲現代瀏覽器會執行緩存301重定向,這可能會在測試過程中產生令人困惑的行爲,而您經常編輯該規則)。 3)如果你將看到瀏覽器發出的無限重定向消息 - 那麼你有衝突的規則。

+0

謝謝,你的回答有效:) – numediaweb

2

有在$DOCUMENT_ROOT/wordpress/.htaccess文件中這樣的規則:

​​
+0

感謝您的回答,它的工作原理!但我想使用LazyOne答案,因爲我的htaccess已經包含 RewriteBase/ – numediaweb

+0

這絕對沒問題。我故意給了'RewriteBase/wordpress /',因爲WordPress默認在默認安裝中添加了這個功能。 – anubhava