通过不同文件夹中的.htaccess文件将abc.com重定向到opencart中的www.abc.com

时间:2013-01-17 06:40:32

标签: .htaccess redirect opencart

我在两个文件夹中安装了opencart - 一个是根文件夹,即'public_html /',一个是'public_html / test /'。两个opencart都包含.htaccess文件。

'public_html /'文件夹中opencart的.htaccess文件包含以下重写规则:

RewriteBase /
RewriteRule sitemap.xml /new/index.php?route=feed/google_sitemap
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^abcd\.co\.in
RewriteRule (.*) http://www.abcd.co.in/$1 [R=301,L]

和'public_html / test /'文件夹中的opencart的.htaccess文件包含以下重写规则:

RewriteBase /test/
RewriteRule sitemap.xml /new/index.php?route=feed/google_sitemap
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

问题是,当我打开域 http://abcd.co.in 时,它会重定向到 http://www.abcd.co.in ,但当我打开 http://abcd.co.in/test

  

它没有重定向

http://www.abcd.co.in/test

2 个答案:

答案 0 :(得分:1)

如果您点击了网址

http://abcd.co.in/test/

如果.htaccess文件夹中有另一个public_html文件,则.htaccess根文件夹中的public_html/test/文件不会被计入。您应该以这种方式扩展public_html/test/.htaccess

RewriteBase /test/
RewriteRule sitemap.xml /new/index.php?route=feed/google_sitemap
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^abcd\.co\.in/test/
RewriteRule (.*) http://www.abcd.co.in/test/$1 [R=301,L]

这应该可以解决问题。

答案 1 :(得分:0)

您的重定向规则未应用。此外.htaccess也应限于您关联的文件夹,请尝试这一点,我的头脑:

RewriteBase /test/
RewriteRule sitemap.xml /test/index.php?route=feed/google_sitemap
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) /test/index.php?_route_=$1 [L,QSA]