RewriteRule冲突并删除.php

时间:2015-11-21 14:32:42

标签: php apache .htaccess mod-rewrite

我在.htaccess中有这个,删除所有文件末尾的.php:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

现在我需要一个新规则来重定向:

# FROM: www.example.com/ca/blog/first-post  
# TO:   www.example.com/ca/entrada.php?first post      
RewriteRule ^ca/blog/(.*)$ /ca/entrada.php?url=$1[L]

它不起作用。

我尝试添加[LR = 301]以了解它的去向,令我惊讶的是,它会:

www.example.com/ca/entrada.php?url=first-post.php/first-post

然后,我检查它是否可能与另一个RewriteRule发生冲突。我发现如果我删除第一个RewriteRule(摆脱.php的那个),第二个(博客一个)工作正常。

我只知道两个RewritRule之间存在冲突,但问题究竟在哪里以及如何解决?

更具体地说,我会理解第一条规则最后可以添加.php:" www.example.com/ca/entrada.php?url = first-post.php"但是" / first-post"最后来自?

0 个答案:

没有答案