繁体   English   中英

从 .htaccess 重定向 URL 重写/映射

[英]Redirect URL Rewrite/Map from .htaccess

问题是,我想将我当前基于 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 文件夹名称。

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

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

免责声明:从未使用过 CodeIgniter,所以每个人都可以随意纠正。

如果其他人发生这种情况,我有一个类似的用例,其中应用程序代码驻留在/public_html/app/ ,我希望它从/public_html/重定向,但不在URL 中显示它的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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM