【问题标题】:Remove URL file ending (.php , .js , .asp etc)删除 URL 文件结尾(.php、.js、.asp 等)
【发布时间】:2012-12-11 04:59:10
【问题描述】:

我有一个关于删除 url 栏中文件结尾的问题(.something like .php, .html, .js, .asp 部分)。我的目标是,每当有人在 URL 中输入类似 www.123.com/a 之类的文件时,假设是一个 php 文件(所以它是 a.php ),以便人们可以输入 www.123.com/a 而不是 www.123.com/a.php。我该如何解决这个问题?

是否有一些独特的方法来保存文件,以便它们被保存并可以通过 url 仅通过其名称调用?就我而言,如果我打电话给www.123.com/a,它会说"object not found error",但它适用于www.123.com/a.php

如何在 url 栏中隐藏文件的 .something 部分?

补充说明,我使用notepad,所以每当我保存时,我都会输入a.php 保存为PHP 或a.js 保存javascript 文件。

【问题讨论】:

  • 大卫哈里斯的回答将为删除文件扩展名提供完美的解决方案。但是,如果你想做一些高级的重写,你应该更多地研究它。 (正如菲利普怀特豪斯)在下面提到的。

标签: php html


【解决方案1】:

通常使用.htaccess

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [QSA]

【讨论】:

  • 感谢您提供技术方面的帮助。我专注于一般流程。
  • 我知道 .htaccess 这个词听起来很熟悉,我在我的服务器上见过它。我该怎么办?我在哪里输入你输入的代码?我是否将其与 a.php 文件一起放入?
  • 我写的应该是你的.htaccess file。
  • 谢谢,似乎可以使用该文件。对于许多人来说,快速提问。文件会像“ (.*) $1.php , $1.html, $1. etc 吗?
  • 您必须使用一组类似的规则来检查.html 是否是一个文件,如果是则重写它,等等。
【解决方案2】:

使用 .htaccess!

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

https://stackoverflow.com/a/10469791/1533203

http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/

【讨论】:

    【解决方案3】:

    我该如何解决这个问题?是否有一些独特的方法来保存文件,以便它们 是否已保存并可以通过 url 仅通过其名称调用?

    没有。

    实际发生的是我们让 Web 服务器在请求到达 PHP 之前重写它们。

    因此用户可能会键入(或被发送到):

    http://stackoverflow.com/questions/14026969/remove-url-file-ending-php-js-asp-etc

    Apache(或您正在使用的任何 Web 服务器)然后会将其重写为:

    http://stackoverflow.com/index.php?page=questions&id=14026969&title=remove-url-file-ending-php-js-asp-etc

    我们可以从中处理它。

    【讨论】:

      【解决方案4】:

      如果 bot 存在于 repo 文件夹中,则创建 .htaccess 文件并将该代码添加到其中

      Options +FollowSymLinks -MultiViews
      # Turn mod_rewrite on
      RewriteEngine On
      RewriteBase /
      
      ## hide .php extension
      # To externally redirect /dir/foo.php to /dir/foo
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
      RewriteRule ^ %1 [R,L,NC]
      
      ## To internally redirect /dir/foo to /dir/foo.php
      RewriteCond %{REQUEST_FILENAME}.php -f
      RewriteRule ^ %{REQUEST_URI}.php [L]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-10
        • 2019-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-13
        • 2019-07-21
        • 2015-06-20
        相关资源
        最近更新 更多