我目前有一个博客设置作为主站点的子文件夹mydomain.com.au/blog/
,但是它/blog
是通过 PHP 动态生成的,实际上并不存在。
我创建了一个子域blog.mydomain.com.au
,我试图让它显示所有内容,mydomain.com.au/blog/
但屏蔽 url 以便它显示blog.mydomain.com.au
。
我已经使用 htaccess 进行了几次尝试并接近了几次,但总是有问题。以下是使我最接近预期结果的 2 次尝试:
第一次尝试
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com\.au$
RewriteRule ^.*$ http://www.mydomain.com.au/blog%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
这将blog.mydomain.com.au
重定向到www.mydomain.com.au/blog/
,但不会屏蔽 URL(地址栏将显示www.mydomain.com.au/blog/
)。
第二次尝试
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com\.au$ [NC]
RewriteRule blog/(.*) http://blog.mydomain.com.au/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
这让我最接近。它以我希望它为所有页面的方式重定向和屏蔽 URL /blog/
(例如blog.mydomain.com.au/whatever/重定向到www.mydomain.com.au/blog/whatever/但将 URL 屏蔽为博客。 mydomain.com.au/whatever/),但它不这样做blog.mydomain.com.au
,它被重定向到www.mydomain.com.au
.