Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 将.php URL重定向到不带扩展名的URL_.htaccess_Redirect - Fatal编程技术网

.htaccess 将.php URL重定向到不带扩展名的URL

.htaccess 将.php URL重定向到不带扩展名的URL,.htaccess,redirect,.htaccess,Redirect,可能重复: 我想将我所有的网站URL,myurl/webgeexamples.php,重命名为其非扩展版本myurl/webgeexamples,如果可能的话,可以将所有流量从myurl/webgeexamples.php重定向到新的myurl/webgeexamples 我发现有几种方法可以从PHP重定向到非PHP,如: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !

可能重复:

我想将我所有的网站URL,
myurl/webgeexamples.php
,重命名为其非扩展版本
myurl/webgeexamples
,如果可能的话,可以将所有流量从
myurl/webgeexamples.php
重定向到新的
myurl/webgeexamples

我发现有几种方法可以从PHP重定向到非PHP,如:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
我所拥有的:

myurl/webpageexamples.php
我想要的是:

myurl/webpageexamples

我想将SEO分数转移到new
myurl/webpageexamples

如果实际请求是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]

我想就是这样。你是主人。在请求之后进行检查有什么区别吗?还是先进行检查然后再进行浏览器请求更好?我猜因为是301,yhis会将所有SEO从mypage.php转移到新的mypage,对吗?感谢againIt,无论顺序如何,它们都是互斥的。如果我想(几天后我会这样做)也将所有流量从http重定向到https,我会在代码中添加什么?谢谢。警告:这看起来是对这个问题最简洁的回答,但我所看到的所有类似答案都不能解释查询字符串中的
.php
GET/blah?tricked=you.php HTTP/1.1
)。我相信将
/([^\]+)\.php
更改为
/([^?\]+)\.php
会解决这个问题。