Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 具有mod_GeoIP的htaccess条件重写规则_.htaccess_Php 5.3_Geoip - Fatal编程技术网

.htaccess 具有mod_GeoIP的htaccess条件重写规则

.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/,因为这两个商店的文件结构相同。就像现在一样,如果他们点击这个链接,它会将

我在我的电子商务网站上使用mod_geoip将客户从澳大利亚重定向到同一服务器上的不同店面。该存储位于root/store/并且我希望它们被重定向到root/austore/

我得到了它,所以基本的重写工作完美无瑕,但我希望url结构是相同的。例如,如果有人单击了root/store/category/product/链接,并且他们居住在海外,我希望他们被重定向到root/austore/category/product/,因为这两个商店的文件结构相同。就像现在一样,如果他们点击这个链接,它会将他们重定向到基本根/austore/

这是目前的重写规则

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示例以及您希望它的行为。奥斯汀/皮肤问题也是如此。这两个问题可能都很容易解决。还建议您创建一个新的帖子,其中包含详细信息,因为这比通过评论更容易,并且会引起所有人的注意。