我在根级有一个Joomla网站,在/ blog上有一个wordpress博客。
在根级.htaccess中,我需要实现非www到www重定向,例如:
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
但是,这会在访问www.example.com/blog时出现问题(结尾处有“/”尾随)。我被重定向到http://www.example.com/cgi-bin/php53.cgi/blog/index.php
php53.cgi文件可以打开PHP 5.3版本。这是该文件的内容:
#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /hsphere/shared/php53/bin/php-cgi
这是.htaccess里面/博客目录:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress
答案 0 :(得分:1)
您需要在www
上将非www
重定向到.htaccess
,因为后来的.htaccess
会覆盖您的Joomla .htaccess
规则。
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
对于不以/
结尾的博客,您可以在Joomla .htaccess
尝试此规则:
# Redirect /blog to /blog/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+blog([^\s]+) [NC]
RewriteRule ^blog$ /blog/? [R=301,L]
注意:我使用的是%{THE_REQUEST}
,因为我不知道你对Joomla .htaccess
有什么规则,所以上述内容很可能适用于所有情况。
但你也可以用更简单的方式做到这一点,但根据你的其他规则,这在所有情况下都不会起作用:
# Redirect /blog to /blog/
RewriteRule ^blog$ /blog/? [R=301,L]