需要htaccess rewriterule条件

时间:2012-12-20 15:38:23

标签: .htaccess mod-rewrite

我正在尝试设置我的网址重写以检查某个模板,如果它不存在则使用默认模式

所以,如果我有一个URL: http://www.mysite.co.uk/feed/

我希望它检查feed.php是否存在并使用它,如果它存在,但是如果它不使用page.php?page = feed而不是

这就是我目前所拥有的:

Options +FollowSymlinks
RewriteEngine On

RewriteRule ^([^/.]+)/$ $1.php
RewriteRule ^([^/.]+)/$ page.php?page=$1 [L]


ErrorDocument 404 /404.php

如果feed.php存在,它可以正常工作,但是当它不存在时,它会直接默认为我的自定义404.php并绕过第二个重写规则

我知道我需要某种RewriteCondition,但我对此并不了解,也无法找到相关的例子

任何帮助将不胜感激! = D

2 个答案:

答案 0 :(得分:1)

试试这个:

RewriteEngine on
RewriteCond %{REQUEST_URI} /(.*)/
RewriteCond /%1.php !-f
RewriteRule .* /page.php?page=%1

答案 1 :(得分:0)

您需要添加检查以查看文件是否不存在

# serve file if exists
RewriteCond ^([^/.]+).php !-f
RewriteRule ^([^/.]+)/$ page.php?page=$1 [L]

这应该是RewriteEngine On

之后的第一条规则