【问题标题】:Redirect all custom pages to specialized page using htacess使用 htaccess 将所有自定义页面重定向到专用页面
【发布时间】:2018-02-04 02:47:20
【问题描述】:

我创建了以下页面,例如

Index_inner.php
info_inner.php
video_inner.php
comment_inner.php

还有更多

我想重定向

*_inner.php -> *.php

例如

Index_inner.php -> index.php
info_inner.php -> info.php

我正在使用以下 .htaccess 代码进行重定向。

RewriteRule info_inner.php info.php

但是,如何使用一个编码语句重定向所有(*_inner)页面。

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-redirection


    【解决方案1】:

    您可以通过rewriterule 并应用正则表达式来做到这一点。

    RewriteEngine on
    
    RewriteRule ^(.+)_inner\.php$ /$1.php [R=301,L]
    

    【讨论】:

    • 感谢@Charles,URL 已重定向。但另一个问题 - 此代码将 htdocs 视为我的 Web 目录。它重定向为以下格式 (localhost:8080/news/index_inner.php -> localhost:8080/dashboard), (localhost:8080/news/info_inner.php -> localhost:8080/info.php)。我认为这是 基本目录 问题。如何解决?请指导我.. 我的网站目录是 NEWS,它使用 8080 端口。
    • 通过重定向,您应该使用绝对 URL。它之所以要进入根目录是因为/$1.php。如果您将其更改为$1.php(或/news/$1.php),它应该可以满足您的需求。但是,就像我说的那样,最好使用绝对 URL(即RewriteRule ^news/(.+)_inner\.php$ http://localhost:8080/news/$1.php [R=301,L]
    • 请参阅stackoverflow.com/a/1564275/1168379 了解为什么它应该是绝对的。是的,他们最近确实更新了标准,但是一些爬虫/浏览器/客户端可能无法像您期望的那样处理它们。使用绝对 URL 可以清楚地表明要将 URL 重定向到的位置(协议、端口等)。
    • 它有效。 @Charles 感谢您的帮助和及时回复。
    猜你喜欢
    • 2021-03-05
    • 2022-06-30
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多