为什么.htaccess重定向不起作用?

为什么.htaccess重定向不起作用?,.htaccess,redirect,amazon-ec2,http-redirect,.htaccess,Redirect,Amazon Ec2,Http Redirect,我有两个相同版本的网站,都使用不同的AWS EC2实例(staging xx.xx.xx.xx和production xxx.xxx.xxx.xxx)。我想创建一个301重定向,将所有用户从临时站点重定向到生产站点,除非他们是从我的IP访问的。我认为这是一项相对简单的任务,但在过去的几个小时里,我一直在试图让这项工作顺利进行,但没有下定决心。我希望这里有人能给我指出正确的方向。目前,重定向适用于主页的访问者,但不适用于其他页面,如ec2公共DNS,如这里是我的整个.htaccess文件,我添加的

我有两个相同版本的网站,都使用不同的AWS EC2实例(staging xx.xx.xx.xx和production xxx.xxx.xxx.xxx)。我想创建一个301重定向,将所有用户从临时站点重定向到生产站点,除非他们是从我的IP访问的。我认为这是一项相对简单的任务,但在过去的几个小时里,我一直在试图让这项工作顺利进行,但没有下定决心。我希望这里有人能给我指出正确的方向。目前,重定向适用于主页的访问者,但不适用于其他页面,如ec2公共DNS,如这里是我的整个.htaccess文件,我添加的重定向是最后一个。如果你能给我任何帮助,我将不胜感激

# 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>

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

# END WordPress

RewriteEngine on
RewriteRule ^(.*)$ http://newsite.com/$1 [L,R=301,NC]
RewriteBase /
RewriteCond %{HTTP_HOST} !newsite.com$ [NC]
RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
php\u值上传\u最大\u文件大小64M
php_值post_最大尺寸64M
php_值最大执行时间300
php_值最大输入时间300
#结束WordPress
重新启动发动机
重写规则^(.*)$http://newsite.com/$1[L,R=301,北卡罗来纳州]
重写基/
重写cond%{HTTP_HOST}!newsite.com$[NC]
重写cond%{REMOTE_ADDR}=xxx.xxx.xxx.xxx

感谢您的帮助,我想在wordpress论坛上发布我找到的解决方案:
感谢@markrh的回答。问题是我需要将301重定向移到顶部WordPress部分的上方。我的规则从未达到,因为WordPress部分捕获了所有规则。

将上一个重定向规则移动到
行上的
重写引擎下方。@anubhava感谢您的帮助,我已更改了.htaccess文件底部的重定向,并更新了上面的代码。该网站通常从和重定向,但不幸的是,它仍然没有像这样重定向页面。我还可以添加其他规则来实现这一点吗?这正是我25分钟前在评论中写的:)