【发布时间】:2012-07-09 05:20:47
【问题描述】:
所以我已经为此苦苦挣扎了一整天,到目前为止没有任何帮助。 我在域的根目录中安装了 PyroCMS,在同一文件夹 (public_html) 中安装了子域博客。
现在的问题是,当我访问 http://dev.iber.co.uk/blog/ 时,我看到的是 blog.iber.co.uk。显然那是因为 blog 文件夹是存在的,而不仅仅是 htaccess 重写的 url。
文件夹结构:
public_html
blog
.htaccess
.index.php
etc..
.htaccess
index.php
etc..
但是,如果我从博客文件夹 dev.iber.co.uk/blog/ 中删除 htaccess,它会被重写为 index.php。
这里是 dev.iber.co.uk 的 .htaccess(这个子域实际上指向根 public_html 文件夹):
Options +FollowSymLinks -Indexes
RewriteEngine on
RewriteBase /
RedirectMatch 403 ^/(system\/cms\/cache|system\/codeigniter|\.git|\.hg).*$
RewriteCond %{HTTP_HOST} !^blog\.iber\.co\.uk [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
这是来自 wordpress 博客的 .htaccess:
Options +FollowSymLinks -Indexes
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog\.iber\.co\.uk [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
我做错了什么?我无权重写日志,因为它是共享服务器。任何帮助我解决问题的人,我都会给予 50 个代表。
谢谢
【问题讨论】:
-
为什么 blog/.index.php 是点前缀的?首先读取父文件夹 htaccess,因此使用 [L] 完成的任何重写匹配都将是最后一次重写。您可能希望在域之间进行重定向 - 如果将 url 作为路径 /blog/ 输入,则发送到博客。带有重定向的子域不重写
-
你去dev.iber.co.uk/blog时希望看到什么?
-
我希望看到属于 dev.iber.co.uk 的博客的页面 - 它与 blog.iber.co.uk 无关
-
这是一个简单的页面,应该在 dev.iber.co.uk 中重写为 index.php
-
您是否可以控制虚拟主机的 DocumentRoot -“共享服务器”,所以我猜没有?如果我错了,请纠正我,dev../blog 与目录中的文件对象无关,它只是直接视图/模型的替代 url 模式吗?
标签: wordpress apache .htaccess mod-rewrite url-rewriting