-1

这是我用来隐藏 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

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

我也想让这个博客文章搜索引擎像http://example.com/blog/id-of-blog/title-of-blog一样友好

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

4

2 回答 2

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>
于 2013-12-30T13:19:58.570 回答
0

对的,这是可能的,

用你的 .htacccess 文件试试这个代码,

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
于 2013-07-20T08:04:48.087 回答