【发布时间】: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