1

我知道它正在尝试加载 .html 版本,至少我很确定。我还认为它是 .htaccess 文件中的内容。我已经尝试了一些不同的东西来搜索谷歌并提出不足。基本上我希望它能够工作,这样如果输入的名称没有 .html 文件,它将转到 php 文件。

这可能吗?

4

3 回答 3

2

尝试这个:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -s
RewriteRule ^.*$ %{REQUEST_URI}.php [L,QSA]

上述规则说,如果请求的文件大小为 0,或者不作为文件、符号链接或目录存在并且.php存在具有扩展名的同名文件,则重写该.php文件。

这有效地重写site.com/foosite.com/foo.php哪里foo可以是任何东西。

我不太清楚你想要什么。如果要将不存在的.html文件映射到.php扩展名,请尝试以下操作:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ $1.php [L,QSA]

这只是说如果请求的文件不存在并且以 结尾.html,然后获取文件名(减去.html)并尝试重写.php扩展名。

于 2012-07-25T03:07:28.083 回答
1

在 htaccess

RewriteEngine on 
RewriteRule ^eat$ eat.php [L]  
于 2012-07-25T03:06:56.913 回答
1

利用MultiViews

将此添加到 apache 配置中(在httpd.confVirtualHostconfig 或 in 中.htaccess):

Options +MultiViews

为此使用重写是一种过大的杀伤力,什么时候content-negotiation可以完成这项工作。

于 2012-07-25T03:07:11.157 回答