Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
如何使用.htacces规则从当前url添加子域名_Url - Fatal编程技术网

如何使用.htacces规则从当前url添加子域名

如何使用.htacces规则从当前url添加子域名,url,Url,我有一个URL链接,比如, 以及 我想把它显示为 使用.htaccess 任何人都可以通过提供.ht访问规则来帮助我 我想为URL中的每个城市名称编写.htaccess规则作为子域名。 此外,我希望它是动态的,因为有不同的城市在网站上提供 我正在.htaccess文件中使用以下代码,但工作不正常 重写规则^index.php/[^/]+$http://$3.domain/$1/$2/$3[R=301,L] 是否有任何方法可以通过使用或修改我的上述代码或其他.htaccess代码来获取我的需求。对

我有一个URL链接,比如, 以及

我想把它显示为

使用.htaccess

任何人都可以通过提供.ht访问规则来帮助我

我想为URL中的每个城市名称编写.htaccess规则作为子域名。 此外,我希望它是动态的,因为有不同的城市在网站上提供

我正在.htaccess文件中使用以下代码,但工作不正常

重写规则^index.php/[^/]+$http://$3.domain/$1/$2/$3[R=301,L]


是否有任何方法可以通过使用或修改我的上述代码或其他.htaccess代码来获取我的需求。

对不起,您所要求的是不可能的。这是对url重写的典型错误理解:

Url重写在处理传入请求之前在服务器端对其进行操作。不可能通过这种方式更改传出内容,从而更改包含的URL

不过,有一些解决方案:

apaches代理模块可以将一个url映射到其他url的范围 还有一些模块用于对生成的html标记进行自动后处理 更多的异国情调或创造性的解决方案存在,这取决于你最终的情况。。。 但通常最简单的方法是更改应用程序,通常只是更改其中心配置,以便在您的情况下包含指向子域的最终URL。然后,当将来的传入请求引用它们时,您确实可以使用重写模块将它们重新映射到以前的作用域

好的,第二步从您的评论中获取更多信息:

为了弄清楚这一点:您知道不可能通过重写的方式更改您发送的链接,但您希望在用户单击某个城市链接后更改浏览器中显示的url?这和你以前写的不同,这是可能的。太好了

如果重写按照您希望的方式工作,您可以在浏览器地址栏中看到所需的url,那么我们可以继续。错误消息表示名称解析问题,与重写无关。很可能无法解析域cambridge.192.168.2.107,这其实并不奇怪。您不能混合使用ip地址和名称,它是或

我还看到您正在使用内部的、不可路由的地址。因此,您还需要自己负责名称解析,因为没有公共DNS服务器可以猜到您在内部设置了什么。是你干的吗

我建议采取以下步骤:

停止为此使用ip地址,请使用域名。 由于您是在内部工作,请注意该域名实际上已解析为您的本地系统ip地址。很明显,这取决于您的设置和系统。您很可能需要/etc/hosts或类似文件中的某些条目。 您需要注意的是,这些子域名也会解析到相同的地址。这不是小事,同样取决于本地使用的设置和系统。 如果名称解析有效,那么您应该在http服务器访问日志文件中看到一个请求。然后,也只有到那时,继续下去才有意义。。。
是否有任何.htaccess代码可以帮助实现我的目标。就像我在下面使用的.htaccess代码一样,但无法正常工作,因为它重定向为找不到页面!重写规则^index.php/[^/]+$http://$3.domain/$1/$2/$3[R=301,L]对不起,我不能回答这个问题,因为我没有关于情况的详细信息。请求的url是什么,它被改写成什么?你知道的,不是我。提示:在尝试设置或调试重写规则时总是这样:启用重写日志!查看重写模块的优秀文档,您将在其中找到RewriteLog和RewriteLogLevel命令。它们帮助您准确地了解每个请求的重写引擎中实际发生的事情。不要试图猜测会发生什么,打开灯并仔细观察!好的,我有一个按城市名称列出产品清单的网站。所以有一个城市列表,每个城市名称都有类似的链接。在那一页上有一个拥有这个城市的产品列表。但我想将我的url重写为:。我使用这个链接作为参考:所以我想成为一个我确实理解的人,而不是URL。但正如所写:这是不可能通过重写的方式。重写模块根本无法更改您发送的链接。如果您发送包含类似domain.com/state/city的html标记,那么这些链接就会像这样消失。重写模块不能用于更改它们。它只能更改传入的请求。我放弃了下面的链接代码,这些代码符合我的要求,但无法正常工作。你能帮我找出在我的网站上使用该代码是否有任何错误吗。