如何制作example.com/eat load example.com/eat.php?

时间:2012-07-25 02:56:29

标签: php html redirect

我知道它正在尝试加载.html版本,至少我很确定。我也认为它是.htaccess文件中的内容。我尝试了一些不同的东西,从搜索谷歌和短缺。基本上我希望它工作,以便如果输入的名称没有.html文件,它将转到php。

这可能吗?

3 个答案:

答案 0 :(得分: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/foo重写为site.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扩展名。< / p>

答案 1 :(得分:1)

在htaccess中

RewriteEngine on 
RewriteRule ^eat$ eat.php [L]  

答案 2 :(得分:1)

使用MultiViews

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

Options +MultiViews

content-negotiation可以完成工作时,使用重写是一种过度杀伤。