在主机上重写URL .htaccess

时间:2013-03-13 05:37:10

标签: .htaccess

我有3个文件:.htaccess

RewriteEngine On

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ cats.php?name=$1

index.php

<?php
echo 'index';

cats.php

<?php echo $_GET['name'] . ' < '.$_GET["name"];

我遇到的问题是,当我在site.com上时,它会将我重定向到cats.php 始终。但是在我的localhost上,如果传递参数,它会重定向我 例如: site.com/some-argument

1 个答案:

答案 0 :(得分:0)

这是可能导致问题的一行:

RewriteCond %{REQUEST_FILENAME} !-f

这意味着只有在请求的文件名找不到时才执行RewriteRule。

在不起作用的本地主机上,您可能在httpd.conf(或.htaccess)中有以下设置:

DirectoryIndex index.php

由于上述设置,当您输入http://site.com时,默认情况下会尝试显示index.php,并且由于Apache找到了您的上述RewriteCond,因此返回false并且您的RewriteRule不会触发。

用于测试RewriteCond上方的注释,看看是否会改变行为。