我有一个像这样的网址链接, http://domain.com/abs/def/city和
我想将其显示为 http://city.domain.com/ABC/def
使用.htaccess。
任何人都可以通过提供.ht访问规则来帮助我。
我想为URL中的每个城市名称编写.htaccess规则作为子域名。 此外,我希望它是动态的,因为现场有不同的城市。
我在.htaccess文件中使用以下代码,但无法正常工作。
RewriteRule ^ index.php /(.< em>)/(。)/([^ /] +)$ http://$3.domain/$1/$2/$3 [R = 301, L]
有没有办法通过修改我的上述代码或其他.htaccess代码来获取我的要求。
答案 0 :(得分:0)
抱歉,但你提出的问题是不可能的。这是关于网址重写的典型误解:
在处理之前,Url重写会在服务器端重写(操作)传入请求。 不可以改变传出内容,以便通过这种方式更改包含的网址。
虽然有解决方案:
但通常最简单的方法是更改应用程序(通常只是其中央配置),使其包含最终URL(指向您的子域中的子域)。然后,当未来的传入请求引用它们(它们被点击)时,您确实可以使用重写模块将这些模块“重新映射”到前一个范围。
好的,第二步从评论中获取更多信息:
只是为了清楚明白:您了解无法通过重写更改您发送的链接,但是您希望在用户拥有后更改浏览器中显示的网址点击一些城市链接? 那与你之前写的不同,实际上是可能的。大。
如果重写按您的意愿工作(您在浏览器地址栏中看到了所需的网址),那么我们就可以继续了。该错误消息表示名称解析问题,与重写无关。很可能域“cambridge.192.168.2.107”无法解决,这实际上并不令人惊讶。你不能混合IP地址和名称,它是或。
此外,我发现您使用的是内部不可路由的地址。因此,您自己也负责名称解析,因为没有公共DNS服务器可以猜出您在内部设置的内容。是你做的吗?
我建议采取以下措施:
/etc/hosts
中的某些条目或类似内容。