我的主要基于PHP的网站已在我网站的根文件夹中运行。让我们称之为www.example.com。我的页面很少。一些导航链接是:
主页|服务|关于我们|联系我们
我想在此添加一个Wordpress博客..所以我所做的就是。
主页|博客|服务|关于我们|联系我们
请注意,我现在已经在网站的根文件夹中创建了一个名为“blog”的子文件夹,我已将所有Wordpress“文件”上传到博客文件夹中。因此,如果我想访问我的博客,截至目前,我将访问:www.example.com/blog
到目前为止,还可以。现在,当我向博客添加新帖子时,我不希望人们在尝试阅读帖子时看到URL中的“/ blog”。我浏览了以下链接,但没有帮助:Giving WordPress Its Own Directory
如果人们只是想要托管他们的Wordpress网站,那么上述链接将有所帮助。它只是有助于保持根文件夹清洁并仍然从根文件夹访问URL。但事实并非如此。我已经在根文件夹中运行了基于PHP的网站。我只是想 博客是一个补充,但跳过显示它添加在另一个文件夹中。
我在wordpress的管理面板中做了以下更改:
在“设置>常规”页面中:
WordPress地址(URL):www.example.com/blog
网站地址(URL):www.example.com
在“永久链接设置”页面中,选择此选项:http://www.example.com/sample-post/
现在,主页&其他页面加载正常。
问题:
当我访问: www.example.com/blog 时,它说:
“这有点尴尬,不是吗? 看来我们找不到你想要的东西。也许搜索或下面的链接之一可以提供帮助。“我不明白为什么在我希望看到帖子时看到上述内容。有一个Hello Word样本帖子。我希望看到一个链接,但这没有发生。为什么会这样?
此外,如果我点击主页链接,它会将我带到网站的主页,这是正确的。但是,如果我点击“样本页面”菜单链接或“最近的位置”下的“Hello World”链接,地址栏中会显示以下URL: www.example.com/hello-world/ 但是,它没有向我显示帖子。相反,它加载我的网站的根文件夹的index.php页面,这不应该发生。看起来好像没有加载CSS文件,因为它删除了所有的CSS。因此,当我访问时,会出现index.php页面的CSS剥离版本:www.example.com/hello-world /
我试图为此找到解决方案,但所有这些都导致了“给WordPress自己的目录”帖子。并且该页面中提到的解决方案不适用于我的情况。怎么解决这个问题?所有帮助表示赞赏。
谢谢。
答案 0 :(得分:1)
方法I
这会很脏,我不确定这是否会起作用,但是尝试做下面的事情(我希望你的网站是程序性的,而你没有使用任何框架,否则这会使事情变得复杂) :
site/
子文件夹。现在,我们将使用.htaccess
做一些魔术并通过在RewriteEngine on
之后添加以下代码来重写您的“网站”链接:
# do this for all pages of your site:
RewriteRule ^services/?$ /site/services/$1 [L,QSA]
# now let's try to trick WordPress and swap / with /blog
# so users will see /blog in adressbar, but we'll show the WP homepage
RewriteRule ^blog/(.*)?$ /$1 [L,QSA]
现在我们应该让WP认为/blog
实际上是/
,所以它不会引起任何怀疑。将以下脚本放在Wordpress的index.php
文件中,然后再添加任何其他代码:
if( $_SERVER['REQUEST_URI'] == '/' ){ // original site homepage requested
include('./site/index.php');
exit;
}
if( trim($_SERVER['REQUEST_URI'], '/') == 'blog' ){
$_SERVER['REQUEST_URI'] = '/';
$_SERVER['QUERY_STRING'] = '';
}
我没有测试任何东西,但你应该玩这些。
方法II
我不是一个高级的WP用户,但是如果从@ bingjie2680回答永久链接的建议会改变网址,那么除了那个答案之外你还可以再试一次。将类似于以下行的内容添加到文档根目录中的.htaccess(而不是WP的那个):
RewriteCond %{REQUEST_URI} !^(services|about|or_other_stuff)/?$
# Rewrite the request to call the WP index.php.
RewriteRule ^(.*)$ /blog/index.php/$1 [L,QSA]
也许有其他方法,也许真正的解决方案会混合这两种方法。 继续尝试。
答案 1 :(得分:0)
如果您执行以下操作,我认为不会出现问题:
现在,如果您点击博客菜单,您的网站网址将是yourdomian.com/blog,但如果您点击其中一个帖子说'hello world',那么您的网址将是yourdomian.com/hello-world。