我有一个重写条件和规则。
RewriteCond %{DOCUMENT_ROOT}$0 !-f
RewriteRule ^[^*]+$ index.php [L]
我需要.html
用.php
in替换%{DOCUMENT_ROOT}$0
。
原因是,我正在重写我的 url,.html
但是当这个文件检查现有文件时,由于%{DOCUMENT_ROOT}$0
查找文件而失败thefile.html
,
我需要它来寻找thefile.php
。
我有一个重写条件和规则。
RewriteCond %{DOCUMENT_ROOT}$0 !-f
RewriteRule ^[^*]+$ index.php [L]
我需要.html
用.php
in替换%{DOCUMENT_ROOT}$0
。
原因是,我正在重写我的 url,.html
但是当这个文件检查现有文件时,由于%{DOCUMENT_ROOT}$0
查找文件而失败thefile.html
,
我需要它来寻找thefile.php
。
要重写具有相同名称.html
的现有.php
文件的扩展名,请尝试以下规则而不是您的规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php [L]
您刚刚将任何不存在的文件重写为 index.php
解决了!
RewriteCond %{DOCUMENT_ROOT}$0 !-f
RewriteRule ^(.*).html$ $1.php [L]
RewriteCond %{DOCUMENT_ROOT}$0 !-f
RewriteRule ^[^*]+$ index.php [L]
我不得不使用它两次,首先,将所有 .html 重写为 .php,然后在请求 for.php 时,第二个条件开始发挥作用。