2013-03-13 71 views
0

我有3個文件:.htaccessRewerite URLS的.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總是。但在我的本地主機重定向我只如果一個參數傳遞例如: site.com/some-argument

回答

0

這是可能會導致問題的行:

RewriteCond %{REQUEST_FILENAME} !-f 

這意味着只有當請求的文件名是執行重寫規則找不到

在哪裏它不工作,你可能有以下在httpd.conf(或的.htaccess)設置本地主機:當你進入http://site.com則默認情況下index.php試圖將

DirectoryIndex index.php 

由於上述設置的被顯示,因爲它是由Apache發現你的上面的RewriteCond返回false,你的RewriteRule不會觸發。

對於RewriteCond上面的測試評論,看看是否改變了行爲。