我已经开始在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的网址普遍重定向到没有扩展名的同一页面?
答案 0 :(得分:2)
在您已有的规则之上,添加以下内容:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$ /$1 [L,R=301]
重定向不存在的php页面。