【问题标题】:Redirect URL to custom URL through .htaccess通过 .htaccess 将 URL 重定向到自定义 URL
【发布时间】:2012-03-12 01:35:06
【问题描述】:

我有一个页面 www.mypage.com,我想将特定 URL 重定向到另一个不存在的 URL。

例如,我希望 www.mypage.com/about 重定向到 www.mypage.com/about-company.php ,其中 /about 不存在 - 这是我编写的自定义 URL。

我没有动态网址,只想通过.htaccess“this /CUSTOM_URL redirect to this /URL.php”告诉我。

网址栏中,必须显示自定义网址

不知道能不能实现。我一直在寻找它,我发现的只是用模式重写动态 URL 的方法。

例如,Wordpress 的永久链接,您可以在其中指定每个页面所需的 URL。

【问题讨论】:

    标签: .htaccess url redirect permalinks


    【解决方案1】:

    您正在寻找重写规则。

    相关阅读:Apache Rewrite rules

    【讨论】:

    • 我以前读过这个。这台服务器似乎有一些问题,因为我之前尝试过的,现在可以在另一台服务器上运行,但不能在这台服务器上运行。无论如何感谢您的回答!
    【解决方案2】:

    尝试将以下内容添加到站点根目录中的 .htaccess 文件中,以获得您请求工作的具体示例:使用 www.mypage.com/about 访问 www.mypage.com/about-company.php

    RewriteEngine on
    RewriteBase / 
    
    #if about was requested, server about-company.php
    RewriteRule ^about$ about-company.php [L,NC]
    

    如果您想要更一般的规则,例如www.mypage.com/anything 用于访问 www.mypage.com/anything.php你可以用

    替换上面的规则
    RewriteRule ^(\w+)$ $1.php [L,NC]
    

    或者您可以将所有请求发送到单个 .php 文件,该文件决定要显示的页面,例如

    RewriteRule ^(\w+)$ index.php?page=$1 [L,NC]
    

    【讨论】:

    • 非常感谢。事实上,我使用的服务器似乎有一些问题,因为我在这里发布问题之前尝试过的,在另一台服务器上工作。但是,您的解决方案效果很好。感谢您的宝贵时间!
    【解决方案3】:

    基于 Ulrich Palha 的评论,我发现这对我来说是一个 .htaccess 文件,可以提供替代重定向,并屏蔽到我自己的几个 .php 页面:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /
    RewriteRule ^(optionOne$|optionOneWithEndingSlash/$|optionTwo$|etCetera/$) ppl/peaceseeker.php [L] [NC]
    RewriteRule ^(donny$|donny/$|donnycallahan$|donnycallahan/$) ppl/donnycallahan.php [L] [NC]
    

    (我提到这一点是因为当人们键入 example.com/about/(带有结尾斜杠)时,Ulrich 的解决方案给我带来了问题)。

    谢谢,乌尔里希。如果有人知道如何修改 Ulrich 的 .php-suffix 规则以递归地下降到任意数量的目录,我将不胜感激!

    作为需要进入目录的任何人的临时解决方案,这对我有用:

    RewriteRule ^(\w+)$ $1.php [L,NC]
    RewriteRule ^(\w+)/(\w+)$ $1/$2.php [L,NC]
    

    第二个命令将处理您网站根文件夹中所有目录的第一个子目录。

    您可以处理 3 级子目录,或 4、5 或 10 , /$3/$4, /$3/$4/$5, 或规则中“.php”之前的任何必要内容。我只需要 2 级目录(目前),所以我对我发布的内容很满意;这个解决方案很简单。

    如果可能的话,我仍然想要一个递归解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 2014-01-16
      • 2018-04-16
      相关资源
      最近更新 更多