Laravel,mod_rewrite和删除.php扩展名

时间:2013-10-04 16:12:42

标签: php apache .htaccess mod-rewrite laravel

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

此网站的网址目前以.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的网址普遍重定向到没有扩展名的同一页面?

1 个答案:

答案 0 :(得分:2)

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

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

重定向不存在的php页面。