使用.htaccess重定向子域

时间:2014-10-01 04:35:33

标签: php apache .htaccess mod-rewrite redirect

我的托管设置了一个子域名:indiantimes.indianradio.net.au,该文件位于我/public_html文件夹中的文件夹中提取:/public_html/indiantimes.com.au

我正在尝试编写一个.htaccess规则,该规则会将其重定向到该文件夹​​,但保留用户输入的原始网址:indiantimes.indianradio.net.au

我只能使重定向工作,即(indiantimes.indianradio.net.au重定向到indianradio.net.au/indiantimes.com.au/),但我似乎无法使重定向工作,因此用户看到的网址仍然存在at:indiantimes.indianradio.net.au。大多数图片网址都被破坏了,我可以让重定向正常工作。

我正在玩的.htaccess规则是:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^indiantimes\.indianradio\.net\.au$ [OR]
RewriteCond %{HTTP_HOST} ^www\.indiantimes\.indianradio\.net\.au$
RewriteRule ^/?$ "http\:\/\/indianradio\.net\.au\/public_html\/indiantimes\.com\.au" [R=301,L]

我在重定向方面做错了什么?任何帮助将非常感激!提前谢谢!

2 个答案:

答案 0 :(得分:1)

您必须将子文件夹名称替换为与子域名相同  
(indiantimes.com.au - > indiantimes)。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^indiantimes\.indianradio\.net\.au$
RewriteCond %{REQUEST_URI} !^/indiantimes/
RewriteRule (.*) /indiantimes/$1

source

答案 1 :(得分:0)

对于子域,通常建议在apache中添加虚拟主机,而不是使用.htaccess(性能方面和更多跨平台)。
但是,您可能会发现以下链接适用于编辑apache配置文件不是一个选项:.htaccess rewrite subdomain to directory(摘要:使用mod-proxy并将P标志添加到您的RewriteRule)

  1. 转到/etc/apache2/sites-available(在终端中使用cd

  2. 添加一个名为:indiantimes.indianradio.net.au的新文件,示例内容:

    <VirtualHost *>
        DocumentRoot /var/www/indianradio.net.au/public_html/indiantimes.com.au/
        ServerName indiantimes.indianradio.net.au
    
        <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews +Includes
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
    
        ErrorLog ${APACHE_LOG_DIR}/error-logfile.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access-logfile.log combined
    
    </VirtualHost>
    
  3. 链接到apache2 / sites-enabled

  4. 中的文件 终端中的

    :来自sites-available文件夹的ln -s ./indiantimes.indianradio.net.au ../sites-enabled/,请注意尾随/