用php删除url扩展名

用php删除url扩展名,php,redirect,nginx,Php,Redirect,Nginx,我在这里进退两难 目前,我正在启动一个网站,有很多旧的url需要重定向到它的新url,没有.stm扩展名。新网站正在运行Durpal 前 --> 因此,我进一步研究了nginx.conf设置,以便在它达到drupal使用的setting.php之前重写url。我的主机不允许我接触根文件夹上的conf文件。但我唯一的解决方案是将其添加到根目录中的conf文件中 server { location / { rewrite ^(.*)\.stm$ $1 permanent; } } 在这一点上,我已

我在这里进退两难

目前,我正在启动一个网站,有很多旧的url需要重定向到它的新url,没有.stm扩展名。新网站正在运行Durpal

-->

因此,我进一步研究了nginx.conf设置,以便在它达到drupal使用的setting.php之前重写url。我的主机不允许我接触根文件夹上的conf文件。但我唯一的解决方案是将其添加到根目录中的conf文件中

server { location / { rewrite ^(.*)\.stm$ $1 permanent; } }
在这一点上,我已经没有选择了,但是需要手动重定向Drupal中的每个页面(大约650页)

我也尝试过其他模块,但没有提供扩展条重定向

我的另一个选项是使用404登录页运行php,并使用.stm重定向任何url,使用不带.stm的清理url重定向,如果不是.stm url,则保留在404中

这是我最好的选择,
但仅仅是一个扩展条和重定向就太复杂了

您应该能够检查请求的URI是否包含“.stm”,如果包含,则重定向到与“.stm”完全相同的URI。在settings.php中放入类似的内容:

if (strrpos(request_uri(), '.stm') !== FALSE) {
    header("Location: " . str_replace('.stm', '', request_uri()));
    exit;
}