Wordpress url在子目录上重写

时间:2014-02-04 15:24:01

标签: php wordpress apache .htaccess mod-rewrite

我有一个wordpress安装,它只有两种自定义帖子类型(博客 howto )。

博客位于根文件夹内的目录中,其中也有几个html页面,如下所示: root structure

要从html文件访问某个自定义帖子类型,我有一个href wp / blog ,另一个到 wp / howto

问题是我想跳过 wp ,所以我的网址会像localhost/blog而不是localhost/wp/blog

我试过

RewriteEngine On
RewriteRule   blog/ /wp/blog/
RewriteRule   howto/ /wp/howto/

在根目录的.htaccess中,它显示了我的博客模板,但只有404页面错误,我不知道应该修改什么来获取wordpress帖子。

PS:对不起我的英文和模糊信息,截止日期即将来临,我不知道该怎么办才能跳过该文件夹。

2 个答案:

答案 0 :(得分:0)

1)在信息中心内,转到设置 - >一般并确保

a)wordpress目录 - > http://mydomain.com/wp

b)网站地址 - > http://mydomain.com

2)将index.php从子目录移动到根目录(MOVE,不要只复制)

3)编辑index.php以阅读

/** Loads the WordPress Environment and Template */
require('./wp/wp-blog-header.php');

其中“wp”是您的子目录

4)删除子目录中的任何.htaccess文件

5)将其添加到根

中的.htaccess
# 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

在此设置下,您的wordpress安装位于/ wp /目录中。访问者将使用http://mydomain.com访问您的网站。

如果您希望对所有内容进行良好的阅读,以便准确了解自己在做什么,请阅读https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

答案 1 :(得分:0)

如果我理解正确 - 所有wordpress系统文件都在“wp”文件夹中 如果是这种情况,您需要做的就是将它们拖到主文件夹中,问题将自行解决。

对于帖子类型(博客/ howto),如果这些是wordpress系统内的帖子类型,不受真实文件夹影响,而是通过调用Wildcard DNS - 这是一种将url链接到内容的方法网址内的值。这意味着该文件夹不必存在于服务器内部,而只存在于系统中。

为了解决你的问题,我建议只是,正如我之前所说 - 从文件夹“wp”中拖出所有文件 - 在它之外。

之后,您需要使用phpmyadmin或您拥有的任何其他客户端登录数据库,然后转到:

A)选择wp_options
B)查看siteurl的option_name并从网址中删除“wp”。 (if it's http://sample.com/wp change it to http://sample.com)
C)查看home的option_name并执行相同操作。

编辑:

试试这个:

在根目录(“wp”的父目录)中,打开.htaccess文件并在mod_rewrite.c中添加:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?YourDomain.com$
RewriteRule ^(/)?$ wp [L]

YourDomain.com更改为您的真实域名。 这应该工作:)

来源:~here~