如果index.php文件不存在,如何将url重写为其他文件

时间:2013-01-07 15:46:43

标签: .htaccess

我有几个域的以下文件结构:

/index.php [optional. for some domains no index.php file]
/content.php [always present]

如果用户请求了example.comexample.com/这样的网址,我想检查服务器上是否存在index.php并将其发送给index.php。但如果服务器上不存在index.php,我应该将他发送给content.php。 此外,如果请求的网址与example.com/testexample.com/test/test2相同,请将其发送至content.php

我在.htaccess中写了这样的内容,但它没有检查index.php是否存在。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^.]+)/([^.]+)?$ content.php?category=$1&slug=$2 [L]
RewriteRule ^([^.]+)?$ content.php?category=$1 [L]
#RewriteRule ^*$ content.php [L]

如何修改上述代码以检查index.php是否存在? 还有任何优化该代码的建议吗?

1 个答案:

答案 0 :(得分:0)

你不能将content.php添加到DirectoryIndex指令吗? E.g。

<IfModule mod_dir.c>
DirectoryIndex index.php content.php
</IfModule>

我认为不可能检查重写规则中是否存在文件。