为啥这个 .htaccess 重定向不起作用?
Posted
技术标签:
【中文标题】为啥这个 .htaccess 重定向不起作用?【英文标题】:Why is this .htaccess redirect not working?为什么这个 .htaccess 重定向不起作用? 【发布时间】:2017-06-12 12:08:34 【问题描述】:我有两个相同版本的网站,都使用不同的 AWS EC2 实例(暂存 xx.xx.xx.xx 和生产 xxx.xxx.xxx.xxx)。我想创建一个 301 重定向,将所有用户从登台站点重定向到生产站点,除非他们从我的 IP 访问。我认为这是一项相对简单的任务,但在过去的几个小时里,我一直在尝试完成这项工作,但没有得到解决。我希望这里的某个人能够为我指明正确的方向。目前,重定向适用于主页 http://xx.xx.xx.xx 的访问者,但不适用于其他页面,例如 http://xx.xx.xx.xx/page1 或 ec2 公共 DNS,例如 http://ec2-xx-xx-xx-xx.us-west-1.compute.amazonaws.com/ 这是我的整个 .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
【问题讨论】:
将您的最后一个重定向规则移动到RewriteEngine On
行的正下方。
@anubhava 感谢您的帮助,我更改了 .htaccess 文件底部的重定向并更新了上面的代码。该站点通常从xx.xx.xx.xx 和ec2-xx-xx-xx-xx.us-west-1.compute.amazonaws.com 重定向,但不幸的是它仍然不会重定向像xx.xx.xx.xx/page1 这样的页面。我可以添加任何其他规则来启用此功能吗?
【参考方案1】:
感谢您的帮助,我想在此处发布在 wordpress 论坛中找到的解决方案: https://wordpress.org/support/topic/htaccess-help-301-redirects-not-working/ 感谢@markrh 的回答。问题是我需要将我的 301 重定向移动到顶部的 WordPress 部分上方。我的规则从未得到过,因为 WordPress 部分捕获了所有规则。
【讨论】:
这正是我 25 分钟前在评论中所写的内容 :)以上是关于为啥这个 .htaccess 重定向不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
htaccess 重定向到 https 和 www 不起作用