【问题标题】:Removing .php extensions from files in htdocs从 htdocs 中的文件中删除 .php 扩展名
【发布时间】:2017-03-22 18:13:21
【问题描述】:

我的项目在我的htdocs 文件夹中,我的主文件是index.php。当文件在浏览器中打开时,我曾多次尝试删除.php 扩展名,使用带有以下行的.htaccess 文件没有运气:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L]

扩展仍然存在。是不是因为我浏览器中的链接是

file:///C:/wamp64/bin/apache/apache2.4.23/htdocs/Cipcpr/index.php

而不是

localhost/... 

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    如果您的项目不需要动态删除扩展,您可以为每个文件手动设置RewriteRules。这是您的 index.php 的代码

    RewriteEngine On
    RewriteRule ^index/?$ index.php [NC,L]
    

    当您现在键入 /index 时,它将引用 /index.php 文件。

    要添加其他文件(比如 login.php),您只需复制最后一个 RewriteRule 并重写索引。

    RewriteRule ^login/?$ login.php [NC,L]
    

    【讨论】:

      【解决方案2】:

      只需将 .htaccess 文件添加到您网站的根文件夹(例如,/home/domains/domain.com/htdocs/),其中包含以下内容:

      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}\.php -f
      RewriteRule ^(.*)$ $1.php
      

      【讨论】:

        【解决方案3】:

        你可以使用:

        Options -MultiViews
        RewriteEngine on
        
        # remove php
        RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
        RewriteRule ^ %1 [R=301,L]
        
        # rewrite with php
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{DOCUMENT_ROOT}/$1.php -f
        RewriteRule ^(.+)/?$ $1.php [L]
        

        【讨论】:

          猜你喜欢
          • 2023-04-05
          • 2012-06-29
          • 1970-01-01
          • 2012-08-27
          • 1970-01-01
          • 2013-03-14
          • 1970-01-01
          • 2012-11-12
          相关资源
          最近更新 更多