【问题标题】:htaccess redirect www to non-www without file extension .phphtaccess 将 www 重定向到不带文件扩展名 .php 的非 www
【发布时间】:2022-10-17 18:28:52
【问题描述】:

我正在尝试使用 .htaccess 从非 www 重定向到 www 。重定向工作正常,但是从非 www 重定向到 www 时会显示 URI 的 .php 扩展名。例如 mydomain.com/info 变为 www.mydomain.com/info.php

重定向时如何摆脱 .php 扩展名?谢谢!

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L] 

【问题讨论】:

  • 尝试用/$1 替换%{REQUEST_URI} 部分(反向引用您的模式捕获的内容。)
  • 尝试使用标志 [R=301,END] 而不是 [L,R=301] ...
  • 使用/$1,它直接指向主域,例如example.com/info/dates 变成 www.example.com/dates.php,[R=301,END] 没有改变任何东西,它以 .php 扩展名重定向到 www.example.com/info/dates.php

标签: .htaccess redirect


【解决方案1】:

它与该代码一起使用以在重定向后删除 .php 扩展名

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s([^.]+).php [NC]
RewriteRule ^ %1 [R=302,L,NE]

【讨论】:

    猜你喜欢
    • 2016-12-04
    • 2018-06-30
    • 2017-05-30
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2015-12-31
    • 1970-01-01
    相关资源
    最近更新 更多