htaccess rewriterule将文件发送到同一目录中的另一个文件

时间:2013-07-16 19:03:26

标签: apache .htaccess mod-rewrite

我有一个目录,其中包含一个index.php和一个index.html文件,两者都是从CMS发布的。有一个特定的IP地址将尝试访问index.html,但应该在同一目录中显示index.php。所有其他流量应该正常运行。

我一直在使用此代码的一些变体:

RewriteEngine On
RewriteCond %{REMOTE_HOST} ^123\.456\.789\.10
RewriteRule ^index\.(htm|html?)$ index.php [NC,R=301,L]

这确实进行了重定向,但当然它会转到网站的根目录而不是停留在同一目录中。在所有情况下,目录路径都不清楚,所以我想告诉Apache保留在它所在的目录中。

这可能吗?

谢谢, 乔纳森

1 个答案:

答案 0 :(得分:0)

如果您希望将此规则用于IP:123.456.789.10,那么您不应该使用此IP 否定如:RewriteCond %{REMOTE_HOST} !

试试这段代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /subdir/

RewriteCond %{REMOTE_HOST} ^123\.456\.789\.10$
RewriteRule ^index\.html?$ index.php [NC,R=302,L]