【问题标题】:Accessing URLS by www.example.com/page instead of www.example.com/page.php通过 www.example.com/page 而不是 www.example.com/page.php 访问 URL
【发布时间】:2009-11-04 19:20:47
【问题描述】:

什么处理禁用扩展?是 APACHE 还是 PHP 安装?如何配置不需要 .php 扩展名的 Web 服务器?是否有一个选项可以使 www.example.com/page.php 和 www.example.com/page 都用作 URL?

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      Apache 还有一个名为MultiViews 的设置,它将domain.com/index.* 作为domain.com/indexdomain.com/example.* 作为domain.com/example 等服务。

      我偶尔会遇到 MultiViews 优于 mod_rewrite 规则的问题,所以我倾向于将其关闭。

      【讨论】:

      • +1 MultiViews 如果你要使用 mod_rewrite,一定要关闭,否则你肯定会头疼。
      【解决方案3】:

      查看 A List Apart 关于此主题的一些文章:您使用 Apache(在您的情况下)设置 ReWriteRule,然后让 PHP 解析 url 以获取正确的信息。 (同样,在您的情况下。您可以使用多种语言和 http 服务器来执行此操作)

      http://www.alistapart.com/articles/succeed/

      http://www.alistapart.com/articles/urls/

      【讨论】:

        【解决方案4】:

        brianreavis 是正确的。这是您的 .htaccess 文件的示例:

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

        【讨论】:

          【解决方案5】:

          我只是把它全部扔到 PHP 上,然后按我想要的方式解析它:

          .htaccess

          RewriteEngine On
          RewriteRule !\.(js|ico|gif|jpg|png|css)$ @frontend.php
          

          【讨论】:

            【解决方案6】:

            我在我的 .htaccess 中使用它

            <Files ~ "^[^.]+$">
            ForceType application/x-httpd-php5
            </Files>

            这样我可以从我的文件中删除所有扩展名 (.php),它仍然可以工作。

            我使用 $_SERVER['PATH_INFO'] 来检索路径的其余部分作为参数。例如。 /page/param1/param2 其中 page 是一个实际的 php 文件。

            【讨论】:

              猜你喜欢
              • 2016-12-15
              • 1970-01-01
              • 2013-03-02
              • 1970-01-01
              • 2017-01-06
              • 1970-01-01
              • 2015-11-18
              • 2011-09-13
              • 1970-01-01
              相关资源
              最近更新 更多