【问题标题】:Laravel, mod_rewrite, and removing .php extensionLaravel、mod_rewrite 和删除 .php 扩展名
【发布时间】:2013-10-11 17:35:11
【问题描述】:

我已经开始在 Laravel 4 中重建网站。

此站点的 URL 当前以 .php 扩展名提供。客户已将这些页面添加为书签,因此重要的是我将它们重定向到同一页面减去 .php 扩展名。

示例:我希望 /contact.php 重定向到 /contact

Laravel 在其 htaccess 文件中附带了这个:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我并不精通正则表达式或 Apache 自己的语法。我发现 this comprehensive answer 可以在没有 .php 扩展名的情况下提供 php 文件,但是 Laravel 通过 index.php 路由所有内容,因此该解决方案似乎不起作用。

如何将带有 .php 的 URL 普遍重定向到没有扩展名的同一页面?

【问题讨论】:

    标签: php apache .htaccess mod-rewrite laravel


    【解决方案1】:

    在您已有的规则之上,添加以下内容:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.php$ /$1 [L,R=301]
    

    重定向不存在的 php 页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-29
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2019-02-12
      • 1970-01-01
      相关资源
      最近更新 更多