1

我正在尝试设置我的 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

4

2 回答 2

1

试试这个 :

RewriteEngine on
RewriteCond %{REQUEST_URI} /(.*)/
RewriteCond /%1.php !-f
RewriteRule .* /page.php?page=%1
于 2012-12-20T15:56:45.657 回答
0

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

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

这应该是之后的第一条规则RewriteEngine On

于 2012-12-20T15:51:21.320 回答