使用.htaccess隐藏php扩展

时间:2013-07-20 07:43:48

标签: php apache .htaccess

这是我用来隐藏php扩展名的代码

<IfModule mod_rewrite.c>
    RewriteCond %{SCRIPT_FILENAME} -d [OR]
    RewriteCond %{SCRIPT_FILENAME} -f
    RewriteRule "(^|/)\." - [F]
</IfModule>

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
</IfModule>

它很完美,但我遇到了一个问题。

当我想访问blog.php时,我只需创建http://example.com/blog链接即可。

我在同一文件夹中也有blog-post.php文件,因此我创建了http://example.com/blog-post链接。

但它会被重定向到http://example.com/blog并使用302标题(我在开发人员工具中找到了这个,在网页上它没有显示任何错误。)

另外,我想让这个博客帖子搜索引擎像http://example.com/blog/id-of-blog/title-of-blog

一样友好

所以,请告诉我如何使这成为可能?

2 个答案:

答案 0 :(得分:0)

是的,有可能,

使用.htacccess文件尝试此代码,

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

答案 1 :(得分:0)

为什么你们都使用相同的方法。这是隐藏扩展的替代方法。
您的文件必须如下:
<a href='aboutus'>about us</a>
而不是<a href="aboutus.php">about us </a>
现在将其添加到.htaccess文件中

RewriteCond %(REQUEST_FILENAME) !-d <br>
RewriteCond %(REQUEST_FILENAME) !-f <br>
RewriteCond %(REQUEST_FILENAME) !-l<br>
RewriteCond ^aboutus aboutus.php [L]<br>