将.php网址重定向到没有扩展名的网址

Gor*_*ion 13 .htaccess redirect

可能重复:
使用.htaccess删除.php扩展名

我想将我的所有网站url myurl/webpageexamples.php重命名为非扩展版myurl/webpageexamples -if可能在htaccess-并同时将所有流量从myurl/webpageexamples.php重定向到新的myurl/webpageexamples.

我发现有几个从PHP重定向到非PHP像:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

我有什么:myurl/webpageexamples.php

我想要的:将搜索引擎优化得分的myurl/webpageexamples转移到新的myurl/webpageexamples

谢谢

Jon*_*Lin 29

如果实际请求是针对php页面,则要确保重定向,并在URI缺少php时进行内部重写:

RewriteEngine On

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]
Run Code Online (Sandbox Code Playgroud)

  • 警告:这看起来是对这个问题最简洁的回答,但是我见过的所有类似答案都没有考虑查询字符串中的“.php”(“GET /blah?tricked=you.php”) HTTP/1.1`)。我相信将 `/([^\ ]+)\.php` 更改为 `/([^?\ ]+)\.php` 可以解决此问题。 (2认同)