使用的.htaccess方法删除PHP扩展(保持链接汁)(Remove PHP extension

2019-09-27 10:53发布

我想删除我的网址PHP扩展,使之使用.htaccess文件重定向301,以保持“等级果汁”搜索引擎友好的和我一样多,我尝试了几乎每一个如约 - 它只是没有按“T似乎工作。

下面是一些我尝试失败已经是方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

这是给予最常见的解决方案,但没有任何反应,也没有改变。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1.php [L]

没有任何反应,也没有改变。

RewriteEngine On
# RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
# RewriteRule (.*)\.php$ /$1 [L,R=301]
# RewriteRule (.*)/$ $1.php [L]

我得到一个未找到 :请求的URL /AMENPTHOME/hostnd/3/9/9/399fc7b78/www/htdocs/web/dive-sites.php此服务器上找到。

阿门是我的主机和文件潜水sites.php在这个具体的实际的例子是根。 我的目标是有:www.domain.com/dive-sites因为此网址已经排了一阵不www.domain.com/dive-sites.php使用重定向301。 是否有人可以帮助?

非常感谢你,所有的帮助表示赞赏。

Answer 1:

如果我没有错过任何东西:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/(.+)\.php[^\s]* [NC]
RewriteRule ^ /%1 [R=301,NE,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [QSA,NC,L]

请求/dive-sites.php会发出301重定向到/dive-sites ,追加查询字符串(如有)。

请求/dive-sites会得到一个200响应/dive-sites.phpContent-Location ,追加查询字符串(如有)。



Answer 2:

尝试这个:

RewriteEngine叙述上

重写规则^ /(+)(($ |#)*(*))/$1.php$2

如果只去除.PHP这会工作。
$ 1 =页面,如foo的名字
$ 2 =注意到#标签或GET请求

例如。



Answer 3:

试试这个代码.php扩展去除:

RewriteEngine On

## hide .php extension
# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]


文章来源: Remove PHP extension using .htaccess methods (Keeping Link Juice)