【问题标题】:How Can I Remove File Name Or Extension From Web Page Address?如何从网页地址中删除文件名或扩展名?
【发布时间】:2014-08-05 12:10:44
【问题描述】:

我打算从我的网页地址中删除文件名或扩展名。有一些解决方案可以做到这一点(.htaccess),但我的 .htaccess 文件是空的。我想知道我该怎么做? 转这个:

http://www.example.com/page.php

进入这个:

http://www.example.com/page

感谢阅读。

【问题讨论】:

    标签: .htaccess webaddress


    【解决方案1】:

    假设你的根目录下确实存在page.php,作为物理文件,那么你可以使用:

    RewriteEngine On
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    

    如果 page.php 不存在,但它是重写规则的产物,你可以使用类似的东西:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    

    两个额外的规则说明:如果浏览器中的文件不存在并且它不是现有文件夹,则继续重写。

    您需要更改您网站中的链接,才能使上述规则生效。比如:

    <a href="http://www.example.com/page">Some fancy page</a>
    

    【讨论】:

    • 您的解决方案将为不存在 nonexisting.php 的任何 url example.com/nonexisting 产生内部服务器错误。它将继续尝试重写,直到达到内部递归限制。
    【解决方案2】:

    确保在您的主配置文件中启用了 mod_rewrite 并且启用了 FollowSymLinks 选项,并确保您重新启动 Apache 以使这些更改生效。然后将以下内容添加到 www-root 中的 .htaccess 文件中:

    RewriteCond %{REQUEST_URI} !\.php$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ $1.php [L]
    

    第一个条件将确保您的 url 尚未以 php 结尾。如果是这样,那么添加 php 是没有意义的,现在是吗?第二个条件检查请求的文件是否不存在。如果它存在,我们希望显示现有文件:例如图像、css 或 js 文件。最后一行在内部重写为后面带有 .php 的文件。

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 1970-01-01
      • 2016-02-18
      • 1970-01-01
      • 2013-01-09
      • 2012-06-29
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      相关资源
      最近更新 更多