如何在第一个斜杠后仅删除文件的.php扩展名?

时间:2019-01-21 18:34:17

标签: php html .htaccess

我正尝试仅在第一个斜杠后从文件中删除.php扩展名。

现在我有:

  

example.com/file.php/123123

我想要的是:

  

example.com/file/123123

我尝试将这段代码添加到.htaccess文件中

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(e)/?$ /$1.php [L,NC]

它成功删除了.php扩展名,但仅删除了URL的最后一部分。 意思是:

  

example.com/file/123123

为:

  

example.com/file/123123.php

然后由于没有123123.php而使其无法加载。

我如何做到这一点,使其仅尝试从第一个斜杠后的.php中删除它? 谢谢

1 个答案:

答案 0 :(得分:0)

如果已安装并启用mod_rewrite模块,则可以将以下代码粘贴到apache2.conf文件中:

<Directory /path/to/site/folder>
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)/$ $1 [R,L]
        RewriteCond %{REQUEST_FILENAME}.php -f
        RewriteRule (.*) $1.php [L]
        RewriteCond %{REQUEST_FILENAME}.html -f
        RewriteRule (.*) $1.html [L]
    </IfModule>
</Directory> 

默认情况下可以安装此模块,因此您可以尝试使用此代码。它可能会起作用。