【问题标题】:htaccess url rewrite issue in removing wordpress year , month , day from urlhtaccess url 重写从 url 中删除 wordpress 年、月、日的问题
【发布时间】:2014-02-17 19:42:50
【问题描述】:

我有一个客户的 wordpress 站点:myexamplesite.wordpress.com,它被重定向到托管表达式引擎网站的 myexamplesite.com。

我正在将所有页面从 myexamplesite.wordpress.com 重定向到 myexamplesite.com,但在接收站点上的 url 重写时遇到问题。

例如网址:http://myexamplesite.wordpress.com/2012/10/02/my-blog-post-1 EE 网站上的相同博文:http://myexamplesite.com/blog/my-blog-post-1

所以我想将传入的 url 重写为:http://myexamplesite.com/2012/10/02/my-blog-post-1http://myexamplesite.com/blog/my-blog-post-1

我正在使用以下 htaccess 代码:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /

RewriteRule ^[0-9]+/[0-9]+/[0-9]+/(.*)$ blog/$1 [NC]

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

</IfModule>

我在 index.php 页面检查了变量:$_SERVER["PHP_SELF"],它显示了以下 uri:/index.php/blog/my-blog-post-1/my-blog-post-1

post url 部分重复。我正在修复中。我没有太多使用 .htaccess 的经验

我的 EE 安装托管在 EngineHosting 上:http://www.enginehosting.com/

提前致谢。

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite expressionengine


    【解决方案1】:

    您希望在[NC] 的末尾添加一个L

    RewriteRule ^[0-9]+/[0-9]+/[0-9]+/(.*)$ blog/$1 [NC,L]
    

    但如果你正在处理重定向,你可能想要这个:

    RewriteRule ^[0-9]+/[0-9]+/[0-9]+/(.*)$ http://myexamplesite.com/blog/$1 [NC,L,R]
    

    【讨论】:

    • 您还需要确保日期之后的最后一个参数是唯一的
    • 谢谢,重定向完美。但是如果我想简单地重写,即使在包含 [NC,L] 之后,它现在也可以正确重写,但是我看到一个只有 $_SERVER["PHP_SELF"] 变量输出的白页。我不知道它是否与 EE 处理请求的方式有关
    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 2014-04-08
    • 2013-09-15
    相关资源
    最近更新 更多