.htaccess无法正常工作。我想在网址中维护子域名

时间:2018-04-21 14:31:40

标签: php .htaccess ftp web

我通过FTP服务器运行网站。

我要修改这个由其他人制作的网站。

我想要做的是将网站移至子域archive.domain.com

我将所有文件复制到名为archive/的子文件夹中,所有功能似乎都有效。

但是,当我访问http://archive.example.com/some_page时,它会自动重定向到http://www.example.com/archive/some_page,这不是我想要的。

我希望域名始终显示为archive.example.com

因为如果我点击网页上的相对超链接,它会被重定向到根目录。比如,如果我点击/other_page,则会转到http://www.example.com/other_page,而不是http://archive.example.com/other_page

我该怎么做?

我当前的.htaccess文件看起来像这样。

RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f   

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

RewriteRule ^some_page$ /some_page/ [R]
RewriteRule ^some_page/$ ./some_page.php

非常感谢!

1 个答案:

答案 0 :(得分:0)

首先,您的.htaccess文件也应该存在于归档目录中。 其次,归档目录中的.htaccess文件应调整为读取

    RewriteEngine On  

    RewriteCond %{SCRIPT_FILENAME} !-d  
    RewriteCond %{SCRIPT_FILENAME} !-f   

    RewriteCond %{HTTP_HOST} !^www\.archive\.example\.com$ [NC]
    RewriteRule ^(.*)$ http://www.archive.example.com/$1 [L,R=301]

    RewriteRule ^some_page$ /some_page/ [R]
    RewriteRule ^some_page/$ ./some_page.php

或者只删除这2行

    RewriteCond %{HTTP_HOST} !^www\.archive\.example\.com$ [NC]
    RewriteRule ^(.*)$ http://www.archive.example.com/$1 [L,R=301]