重定向来自.htaccess的URL重写/映射


Redirect URL Rewrite/Map from .htaccess

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

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

我的旧URL看起来像这样,

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>