困难的.htaccess问题

时间:2011-03-17 17:35:39

标签: zend-framework .htaccess mod-rewrite

我有以下目录结构:

主页: /domains/example.com/public_html/public/index.php

以下是.htaccess脚本,它使www.example.com能够显示正常工作的主页:

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /public/index.php [NC,L]

现在我想添加一个可通过子域和类似目录访问的博客: blog.example.com www.example.com/blog

博客索引位于:/domains/example.com/public_html/blog/index.php

我应该向htaccess添加什么才能启用此功能?

我试过了:

RewriteCond %{REQUEST_URI} ="blog"
RewriteRule ^.*$ /blog/index.php [L]

但无法查看索引或任何其他测试文件。 blog.example.com产生“真实”404错误,www.example.com / blog显示Zend使用的“友好”404页面。我做错了什么?

1 个答案:

答案 0 :(得分:0)

你不应该在两个域上访问一个博客,因为这会导致内容不同,而不是seo友好。

如果你只是将一个具有301状态的uri重写为另一个uri,那会更好。

RewriteCond %{HTTP_HOST} = ^www\.somedomain\.de$
RewriteRule /blog/(.*) http://blog\.somedomain\.de/$1 [L,R=301]

RewriteCond %{HTTP_HOST} = ^blog\.somedomain\.de$
RewriteRule ^.*$ /blog/index.php [L]

告诉我这是否适合你。我认为由于RewriteCond,第二条规则不应与第一条规则发生冲突。无论如何,我只是想帮忙。我没有测试过这个。如果第一次尝试不起作用,请不要投票给我:)

平安!

编辑:在此示例中,我使用blog.somedomain.de作为您博客的唯一可能地址。 somedomain.de/blog/将被重定向到blog.somedomain.de