【问题标题】:How to remove .php extension only for file after the first slash?如何仅在第一个斜杠后删除文件的 .php 扩展名?
【发布时间】:2019-01-21 18:34:16
【问题描述】:

我正在尝试仅在第一个斜杠之后从文件中删除 .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? 谢谢

【问题讨论】:

标签: php html .htaccess


【解决方案1】:

如果您安装并启用了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> 

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2012-03-18
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多