如果我有/index.html并且用户转到domain.tld或domain.tld / index.html,我希望他们获取该页面。 (默认行为)
如果我没有/index.html但我确实有/ content.txt我想提供页面/makeindex.php但不要更改网址。
如果我没有/index.html或/content.txt,我想提供/nocontent.php但不要更改网址。
到目前为止,我有:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /makeindex.php [L]
但我不知道如何将其限制为domain.tld或domain.tld / index.html,我也不知道如何创建这两步流程首先检查content.txt如果我服务/makeindex.php或者回退到/nocontent.php,如果这两个文件都不存在。
答案 0 :(得分:1)
您可以使用以下规则,将其放在htaccess的顶部:
RewriteEngine on
#if /index.html exists serve it as a directory index and main page
RewriteCond %{DOCUMENT_ROOT}/index.html -f
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ /index.html [L]
#if content.txt exists , use makeindex.php as directory index
RewriteCond %{DOCUMENT_ROOT}/content.txt -f
RewriteRule ^$ /makeindex.php [L]
#else set /nocontent.php as directory index
RewriteRule ^$ /nocontent.php [L]