【发布时间】:2013-12-31 17:36:21
【问题描述】:
这是我们的情况:原始域名(例如 www.example.com)是在 WordPress 中完成并安装在根目录中的。我们使用 Joomla 创建了一个新网站并将其放置在一个子目录中(例如 www.example.com/PORTALsite)。
我已经能够使用 htaccess 中的代码成功地将根目录 (www.example.com/) 重定向到该子目录 (www.example.com/PORTALsite):
RewriteEngine on
RewriteRule ^$ http://www.example.com/PORTALsite [R=301,L]
这很好用,除了我们需要原始的 WordPress 网站(位于 www.example.com/index.php 的主页)仍然可以运行。我们需要这个,因为我们在这个 WordPress 网站中有数百个页面在搜索引擎中被编入索引,我们希望所有这些旧内容继续发挥作用。
上面的代码适用于根目录中的所有文件和子目录,允许我们的旧内容继续运行,它正确地将根目录本身 (www.example.com/) 重定向到新 Joomla 网站的子目录目录 (www.example.com/PORTALsite)。
但是,问题是这样的:如果直接访问旧的 WordPress 站点的 index.php 文件(即,如果有人键入 www.example.com/index.php),我们仍然需要它才能运行,但事实并非如此运作。如果您访问 www.example.com/index.php 也会重定向到 www.example.com/PORTALsite。尽管根目录中的所有其他文件仍按我们希望的方式运行。
让我确保我正确地解释了这一点:如果有人进入我们的域 (www.example.com),它会根据我们的需要重定向到新的 Joomla 网站 (www.example.com/PORTALsite)。但是,如果您访问 www.example.com/index.php(旧 WordPress 网站的主页),它也会重定向到新 Joomla 网站的子目录(www.example.com/PORTALsite)。我们不希望这种情况发生。我们希望这样,如果直接访问根目录的 index.php 文件,它仍然可以正常工作(以保持所有旧的 WordPress 内容完好无损)。
我们只希望对域名本身 www.example.com 的请求重定向到 www.example.com/PORTALsite。但是,我们需要所有其他文件和子目录,包括 www.example.com/index.php,才能正常运行(这样人们仍然可以访问所有旧 WordPress 网站的内容,以及大量静态页面) .
根目录 (www.example.com/) 中的所有文件和子目录仍然可以正常运行,但只是旧 WordPress 网站的主页(位于 www.example.com/index.php)也会重定向到 www.example.com/PORTALsite 的新站点(连同对域名本身 www.example.com 的请求)。所以上面的代码非常接近我们想要的工作。
我非常感谢 StackOverflow 方面的专业知识,并非常感谢我们能得到的任何帮助。提前谢谢!
更新:这是我们的 HTACCESS 文件中的代码:(使用“example.com”而不是真实域名)
RewriteEngine on
RewriteRule ^$ http://www.example.com/PORTALsite [R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
鉴于下面的 anubhava 响应,一旦我让 WordPress 停止从 URL 中删除“index.php”,他的代码应该可以工作。谢谢阿努巴瓦!这是整个文件。
【问题讨论】:
标签: php wordpress apache .htaccess joomla