php - 加载位于博客文件夹外部的 index.php 内容以发布单页

标签 php wordpress .htaccess mod-rewrite redirect

我正在为我的静态 PHP 网站创建 博客 页面作为 WordPress。当博客页面 URL 更改为 pretty permalink (example.com/blog/my-post-page) 时,加载内容(不重定向到 index.php,仅加载内容和URL 将类似于 index.php(我网站的主页)的 http://example.com/blog/my-post-page ),它位于 blog 文件夹之外,而不是 single.php 内容。

permalink 更改为 default (example.com/blog/?p=123) 时,它将完美运行。

我需要 URL 作为 http://example.com/blog/my-post-page .

编辑:- 我已将自定义结构的固定链接更新为 /index.php/%postname%/。但是现在帖子页面显示为 example.com/blog/index.php/my-post-page

我认为新的 WordPress 版本提出了这个问题。 (版本 4.2.2)。 从 URL 中删除 index.php 的任何解决方案?

我的目录结构:-

/                                          - Root
/blog                                      - Blog folder
/blog/wp-content/themes/mytheme/           - Theme folder
/blog/wp-content/themes/mytheme/single.php - Post Single page

/index.php                                 - Home page (Loading contents of this file)

我的 htaccess :-

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

当我删除/重命名根文件夹中的 index.php 时,页面将显示未找到错误。

最佳答案

htaccess 中,您可以为 url 重写编写任何正则表达式 在你的情况下

RewriteRule ^/blog/\(.+)$ /blog/index.php?postname=$1

这一行意味着如果 url 以 /blog/ 开头,/ 之后的任何内容都将作为 /blog/index.php 传递给 postname 参数。 example.com/blog/my-post-page 将被重写为 example.com/blog/index.php?postname=my-post-page

你可以从这个规则中排除任何东西

例如让我们排除这个:/blog/wp-content/themes/mytheme/ 它会像这样:

RewriteRule ^(?!/(.+)/(.+)/(.+)/(.+))/blog/\(.+)$ /blog/index.php?postname=$1

关于php - 加载位于博客文件夹外部的 index.php 内容以发布单页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256393/

相关文章:

javascript - 如何使用 Javascript 和 PHP 启用鼠标滚轮水平滚动

javascript - 从垂直 slider 到水平 slider

.htaccess - ".htaccess"文件可以与 npm 的 "http-server"命令一起使用吗?

PHP OOP 自动加载类命名空间问题

php - 我的 Twitter php 脚本停止工作了!

php - 从哪里开始开发 WordPress/WooCommerce 主题?

javascript - 查找重定向网址

php - 使用 Apache 的 Flowplayer 安全流式传输

php - 用于查找 <a> 和 </a> 标记之间所有内容的正则表达式

php - MPDF 无输出(空白页)