【问题标题】:Redirect URL Rewrite/Map from .htaccess从 .htaccess 重定向 URL 重写/映射
【发布时间】:2016-08-30 23:30:09
【问题描述】:

问题是, 我想将基于 CodeIgniter 构建的当前网站移植到 WordPress。我不想损害我的谷歌排名,为此,我确实需要将某些 URL 映射到现有文件,对于新 URL,我会让 WordPress 以默认方式处理它。出现的主要问题是我不想更改现有域。我想从我现有的 CodeIgniter 项目中重定向/映射同一域中的文件。

好的,让我更清楚地说明我的问题状态。我将现有的 CodeIgniter 项目复制到 WordPress 根文件夹中。现在,我将让我的 CodeIgniter 项目提供旧 URL,而对于所有新 URL,我将让 WordPress 处理它。我还将现有数据库移植到新服务器,并为 WordPress 安装创建一个单独的数据库。 那么,如何将旧 URL 映射到 CodeIgniter?

我的旧网址看起来像这样,

http://www.example.com/site/blog/123/abc-xyz-wxy

我想从 CodeIgniter 文件中处理这些 URL,由 WordPress 创建的新 URL 将由 WordPress 处理,如下所示,

http://www.example.com/abc-xyz-wxy

所以,这就是我的 .htaccess 文件的样子,

开始 WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cms/wordpress/
RewriteRule ^site/blog/([0-9]+)/([a-zA-Z0-9-]+)/?$ codeignitor/index.php/$2 
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cms/wordpress/index.php [L]
</IfModule>

结束 WordPress

这个东西工作得很好,但我想要的更多的是 URL 掩码。我想从 URL 中删除 CodeIgnitor 文件夹名称。

【问题讨论】:

    标签: php wordpress apache .htaccess codeigniter


    【解决方案1】:

    要选择“abc-xyz-wxy”字符串并重定向,请尝试使用:

    RewriteCond %{REQUEST_FILE} !-f
    RewriteCond %{REQUEST_FILE} !-d
    RewriteRule ^site\/blog\/123\/([a-z-]+) index.php\/$1 [NC,L] ^$1
    

    免责声明:从未使用过 CodeIgniter,请大家随时纠正。

    【讨论】:

    • RewriteRule ^site/blog/([0-9]+)/([a-zA-Z0-9-]+)/?$ codeignitor/$2 [R=301,L] 这对我来说很好用,但我想从 url 中删除 codeigniter 项目文件夹。这更像是我想要的 url 掩码。
    【解决方案2】:

    万一其他人发生这种情况,我有一个类似的用例,其中应用程序代码驻留在/public_html/app/ 中,我希望它从/public_html/ 重定向,但显示app/它在网址中的一部分。还有一个额外的要求是以这种方式路由特定的 url。结果文件如下。希望它对经历类似旅程的人有所帮助。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    ## SSL
    RewriteCond %{HTTPS} off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    ## DO NOT ROUTE THESE DIRECTORIES
    RewriteRule ^(path-1|path-2) - [L]
    
    ## ROUTE OTHER REQUESTS TO /APP
    RewriteCond %{ENV:REDIRECT_STATUS} . [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]
    RewriteCond %{REQUEST_URI} /(.+)
    RewriteRule !\.[a-z0-4]{2,4}$ /app/index.html [NC,L]
    RewriteRule (.*) /app/$1 [L]
    
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 2015-03-04
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多