使用mod_rewrite重定向甚至绝对URL

时间:2012-01-02 13:10:37

标签: php .htaccess mod-rewrite friendly-url

我正在尝试实现漂亮的网址。 我用PHP编写的所有内容都能正常运行。我需要处理index.php。

的每个请求

例如website.com/page/search/question/dogs将由索引处理。 但是website.com/templates/header.tpl将开始下载该文件。

我想通过index.php处理,甚至可以处理另一个文件。

在.htaccess我有。

RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^.*$ ./index.php  

我怎么能通过index.php来处理绝对的url文件?

2 个答案:

答案 0 :(得分:0)

移除url不能是目录或文件名的条件: RewriteCond%{SCRIPT_FILENAME}!-d
RewriteCond%{SCRIPT_FILENAME}!-f

答案 1 :(得分:0)

如果要重写服务器上已存在的文件的URL,则需要删除!-F(不是文件)和!-D(不是目录)检查。否则,您为RewriteCond设置了错误的RewriteRule itions。

然而,有一点需要注意,你不想为index.php本身重写,否则会导致无休止的重写循环。

RewriteEngine On  

RewriteCond %{REQUEST_FILENAME} !=^./index\.php$
RewriteRule ^.*$ ./index.php [L]

另见RewriteCond Directive­Docs