【问题标题】:htaccess rewrite rule remove subdirectory and .php extensionhtaccess 重写规则删除子目录和 .php 扩展名
【发布时间】:2021-06-01 14:44:47
【问题描述】:

我需要重写我的网站的 url 并使其隐藏子文件夹和 .php 扩展名,如下所示:

原文:http://192.168.100.5/project/controller/report.php?unit=1&year=2021

目标:http://192.168.100.5/project/report?unit=1&year=2021

我目前的规则不起作用

Options -Indexes
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ controller/$1.php [L]

如何做到这一点?谢谢你

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    您将需要 2 个.htaccess 文件。

    站点根目录.htaccess:

    RewriteEngine On
    
    # forward everything to controller/ if not a file or directory
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* controller/$0 [L]
    

    controller/.htaccess:

    RewriteEngine On
    
    # add .php extension internally
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*?)/?$ $1.php [L]
    

    【讨论】:

    • 感谢您的回答,但每当我尝试访问 192.168.100.5/project/report 时它都不起作用,它总是找不到对象
    • 这也让我无法访问我需要能够访问的项目文件夹中的图像文件夹
    • 好的,请在站点根目录 .htaccess 中尝试我的更新代码
    猜你喜欢
    • 2012-03-18
    • 2017-01-07
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 2014-12-22
    • 2015-03-14
    • 1970-01-01
    • 2012-12-24
    相关资源
    最近更新 更多