htaccess 规则从 CodeIgniter 重定向到 Wordpress 类别

发布于 2024-12-28 02:26:01 字数 2301 浏览 0 评论 0原文

我必须 .htaccess 文件,一个用于 CodeIgniter,一个用于 Wordpress。我的目录结构如下:

/application <-- CI Install
/news <-- WP Install

一般来说,我想要一个重写为 /news/topics/resources 的 url /resources 。另外, /resources/page/2 应该重写为 /news/topics/resources/page/2 等...

我尝试过有几件事无济于事。下面列出的是我的 CodeIgniter 和 WP htaccess 文件:

CI .htaccess 文件(位于 /.htaccess)

<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
RewriteBase /

#This should redirect /news/topic/resources/ to /resources
#RewriteRule resources/ /news/topic/resources [NC]
#RewriteRule /resources/^(.*)\ /news/topic/resources/$1
#RewriteRule ^resources/ news/topic/resources/ [NC]
#RewriteRule ^resources$ news/index.php?cat=825 [L]
#RewriteRule ^resources/(.*)$ news/$1 [R,L]

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]    
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule> 

WP .htaccess 文件(位于 /news/.htaccess)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /news/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /news/index.php [L]
</IfModule>
# END WordPress

任何帮助将不胜感激。谢谢。

I have to .htaccess files, one for CodeIgniter and one for Wordpress. My directory structure is as follows:

/application <-- CI Install
/news <-- WP Install

Generally, I want to have a url /resources that rewrites to /news/topics/resources. Additionally, /resources/page/2 should be rewritten to /news/topics/resources/page/2, etc...

I've tried a couple of things to no avail. Listed below is my CodeIgniter and WP htaccess files:

CI .htaccess file (located at /.htaccess)

<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
RewriteBase /

#This should redirect /news/topic/resources/ to /resources
#RewriteRule resources/ /news/topic/resources [NC]
#RewriteRule /resources/^(.*)\ /news/topic/resources/$1
#RewriteRule ^resources/ news/topic/resources/ [NC]
#RewriteRule ^resources$ news/index.php?cat=825 [L]
#RewriteRule ^resources/(.*)$ news/$1 [R,L]

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]    
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule> 

WP .htaccess file (located at /news/.htaccess)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /news/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /news/index.php [L]
</IfModule>
# END WordPress

Any help would be greatly appreciated. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

メ斷腸人バ 2025-01-04 02:26:01
RewriteRule ^resources.*$ /news/topic/$0 [NC]

应该这样做。 WP 将为不存在的 URL 生成 404 页面。

RewriteRule ^resources.*$ /news/topic/$0 [NC]

Should do that. WP will generate 404 pages for URLs that don't exists.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文