.htaccess 具有mod_GeoIP的htaccess条件重写规则
我在我的电子商务网站上使用mod_geoip将客户从澳大利亚重定向到同一服务器上的不同店面。该存储位于root/store/并且我希望它们被重定向到root/austore/ 我得到了它,所以基本的重写工作完美无瑕,但我希望url结构是相同的。例如,如果有人单击了root/store/category/product/链接,并且他们居住在海外,我希望他们被重定向到root/austore/category/product/,因为这两个商店的文件结构相同。就像现在一样,如果他们点击这个链接,它会将他们重定向到基本根/austore/ 这是目前的重写规则.htaccess 具有mod_GeoIP的htaccess条件重写规则,.htaccess,php-5.3,geoip,.htaccess,Php 5.3,Geoip,我在我的电子商务网站上使用mod_geoip将客户从澳大利亚重定向到同一服务器上的不同店面。该存储位于root/store/并且我希望它们被重定向到root/austore/ 我得到了它,所以基本的重写工作完美无瑕,但我希望url结构是相同的。例如,如果有人单击了root/store/category/product/链接,并且他们居住在海外,我希望他们被重定向到root/austore/category/product/,因为这两个商店的文件结构相同。就像现在一样,如果他们点击这个链接,它会将
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$
RewriteRule ^([^/]+)$ /austore/ [L]
我正在编辑的.htaccess文件位于store/目录中
任何帮助都将不胜感激。谢谢
艾伦试试看
#skip processing /store/skin/ directory
RewriteRule ^store/skin/ - [L,NC]
#if they live overseas i.e not Australia
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^AU$
#if someone clicks on a link that is root/store/category/product/
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]
#I want them to be redirected to root/austore/category/product/
RewriteRule ^ /austore%1 [L,R]
试一试
跟进我原来的问题。我有css、image和javascript路径,它们指向原始的root/store/skin目录。随着htaccess重写的实施,它正在重写根目录/ukstore/skin的路径,而根目录/ukstore/skin并不存在,并且正在断开所有这些链接。有没有办法让url重写到位,但保留皮肤目录的路径不变?@coloradohiker请参阅上面的编辑,跳过
/store/skin/directory
,再问一个问题。我们的签出页面是https,在其中,它仍然在重写皮肤和js页面的安全url。在https中也有忽略它的方法吗?再次感谢您的帮助。关于上述规则,出现了一个有趣的问题。我正在使用GeoIP检测多个国家,然后将它们发送到austore。如果有人从新西兰访问,他们会被重定向到austore没有问题,图像、js、css都在那里。这些文件的链接被忽略,因此它仍然读取store/skin。如果有人从澳大利亚访问,那么所有这些链接都会被破坏并重写为austore/skin/。对这个问题有什么想法吗?此外,仍然存在将所有https重写到austore/skin的问题。谢谢@coloradohiker我需要更多关于这两个问题的详细信息,例如,在HTTPS下重写的URL示例以及您希望它的行为。奥斯汀/皮肤问题也是如此。这两个问题可能都很容易解决。还建议你创建一个新的帖子,里面有详细的信息,因为这比通过评论更容易,而且会引起大家的注意。我有css、image和javascript路径,它们指向原始的root/store/skin目录。随着htaccess重写的实施,它正在重写根目录/ukstore/skin的路径,而根目录/ukstore/skin并不存在,并且正在断开所有这些链接。有没有办法让url重写到位,但保留皮肤目录的路径不变?@coloradohiker请参阅上面的编辑,跳过/store/skin/directory
,再问一个问题。我们的签出页面是https,在其中,它仍然在重写皮肤和js页面的安全url。在https中也有忽略它的方法吗?再次感谢您的帮助。关于上述规则,出现了一个有趣的问题。我正在使用GeoIP检测多个国家,然后将它们发送到austore。如果有人从新西兰访问,他们会被重定向到austore没有问题,图像、js、css都在那里。这些文件的链接被忽略,因此它仍然读取store/skin。如果有人从澳大利亚访问,那么所有这些链接都会被破坏并重写为austore/skin/。对这个问题有什么想法吗?此外,仍然存在将所有https重写到austore/skin的问题。谢谢@coloradohiker我需要更多关于这两个问题的详细信息,例如,在HTTPS下重写的URL示例以及您希望它的行为。奥斯汀/皮肤问题也是如此。这两个问题可能都很容易解决。还建议您创建一个新的帖子,其中包含详细信息,因为这比通过评论更容易,并且会引起所有人的注意。