【问题标题】:Redirect .php URLs to URLs without extension [duplicate]将 .php URL 重定向到没有扩展名的 URL [重复]
【发布时间】:2012-10-24 17:49:03
【问题描述】:

可能重复:
Remove .php extension with .htaccess

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

我发现有几个可以从 PHP 重定向到非 PHP,例如:

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

我有什么:

myurl/webpageexamples.php

我想要什么:

myurl/webpageexamples

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

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    如果实际请求是针对 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,对吗?再次感谢
    • 无论什么顺序,它们都是互斥的。
    • 如果我愿意(我将在几天后)也将所有流量从 http 重定向到 https 我会在代码中添加什么?谢谢。
    • 警告:这看起来是对 SO 上这个问题的最简洁的回答,但我看到的所有类似答案都没有考虑到查询字符串中的 .php (GET /blah?tricked=you.php HTTP/1.1 )。我相信将/([^\ ]+)\.php 更改为/([^?\ ]+)\.php 会解决它。
    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    相关资源
    最近更新 更多