开发者

Wordpress redirect htaccess

I have a problem with my htaccess file in wordpress. I want to redirect users who come to /wp-login.php?action=register to another registration form with role parameter. Like this /wp-login.php?action=register&role=patient. So i wanna hide first url from users. I wrote this line in my htaccess.

RewriteRule ^wp-login.php?action=register$ /wp-login.php?action=register&role=patient [NC,L]

It's located here in my file:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^wp-login.php?action=register$ /wp-login.php?action=register&role=patient [NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCon开发者_JS百科d %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

And i have no effect with that. What am i doing wrong here?


You have to match for the query string in a RewriteCond:

RewriteCond %{QUERY_STRING}  ^action=register$
RewriteRule ^wp-login[.]php$ /wp-login.php?action=register&role=patient [R,NC,L]

Edit: corrected my answer


Another problem and solution involves htaccess: When you have your website at a host provider from which you obtain Wordpress installation, it can occur that your WP is not in the root directory, but in a directory called Wordpress-xxxx

For instance: your website address is : http://website.com

so your path is: http:/website.com/wordpres-xxx/file xxx However, most providers use in the background a redirect so it seems to your visitor goes directly to http://website.com

For htaccess this is a problem. If you look in your WP directory you will find htaccess and a good change it has the right format. But, there is another htaccess on your root. Often you cannot change this one, because your provider blocks it for any modification for safety reasons.

That is why your visitors cannot find your pages on your website (404) because that htaccess file in your root, did not change.

You have to ask your provider to sync both htaccess files. the one in WP should be copied/ overwrite the one in your real root directory.

that would solve the problem

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜