.htaccess会覆盖父.htaccess

时间:2012-07-09 18:58:40

标签: wordpress apache .htaccess mod-rewrite url-rewriting

所以我一直在为此奋斗一整天,到目前为止没有任何帮助。 我在域的根目录中安装了PyroCMS,在同一个文件夹(public_html)中安装了一个子域博客。

现在的问题是,在访问http://dev.iber.co.uk/blog/时,我正在看到blog.iber.co.uk。显然这是因为博客文件夹存在而且它不仅仅是由htaccess重写的网址。

文件夹结构:

public_html
   blog
      .htaccess
      .index.php
      etc..
   .htaccess
   index.php
   etc..

但是,如果我从博客文件夹中删除htaccess,dev.iber.co.uk/blog/将被重写为index.php。

这是dev.iber.co.uk的.htaccess(这个子域实际上是指向root 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个代表。

由于

1 个答案:

答案 0 :(得分:4)

在父htaccess中,这会解决您的情况,还是您必须从 dev.domain 访问 / blog / path

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST}     ^dev.iber.co.uk$     [NC]
RewriteCond %{REQUEST_URI}   ^/blog/              [NC]
RewriteRule ^/blog/(.*)$     blog.iber.co.uk/$1   [R=302.L]
... other rules