php - htaccess Symfony2 将所有 *.php 页面(除了 app.php)重定向到 app.php

标签 php apache .htaccess symfony redirect

我想将我的 htaccess 修改为:

  1. 将所有 *.php 调用重定向到 app.php(SEO 调用以保持迁移排名)
  2. 避免重定向循环排除上述重写规则的 app.php。

我最终得到了这个:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI} !app\.php$
    RewriteRule ^(.*)\.php?$ /app.php/ [R=301,L]

   [...]

</IfModule>

但这会在测试网址上产生 404,如 http://example.com/sqdlkqjsdlsqk.php

这里出了什么问题?

问候,

最佳答案

您应该使用此规则,并且在 app.php 之后不带尾部斜杠:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/app\.php$ [NC]
RewriteRule ^(.+)\.php$ /app.php [R=301,L,NC,NE]

在测试此更改之前,请确保清除浏览器缓存。

关于php - htaccess Symfony2 将所有 *.php 页面(除了 app.php)重定向到 app.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39288204/

相关文章:

php - laravel 的生产模式和开发模式有什么区别?

php - 亚马逊 MWS 的 Webhooks

javascript - Wordpress:替换源(域名)链接

arrays - 数组与 Hive 相交

AngularJS SSL .htaccess 问题

php - 仅 .html 的漂亮网址

php - 为什么日期 "2012-12-01"导致打印的表格一遍又一遍地重复它?

apache - 如何在共享主机上启用 php.ini 中的 mod_rewrite

regex - 重写规则从 Regex 中的 (.*) 中排除某些字符串

apache - Firefox与虚拟主机脱机工作