url重写:从选择框html的值中添加url中的虚拟文件夹

时间:2017-02-02 12:24:12

标签: php .htaccess url-rewriting

选择一组城镇,我必须改变这样的网址: mywebsite.com/index.php到mywebsite.com/myselecttownvalue/index.php或mywebsite.com/anotherselecttownvalue/index.php

htaccess可以管理它吗?

Ty求助!

1 个答案:

答案 0 :(得分:0)

当然可以“接受”传入的URL,这意味着将它们重写为可以处理请求并对其进行响应的内部现有路由。

关于您的示例:通常会遗漏脚本名称,因此URL看起来很干净,类似于https://example.com/town/myselectedtown,并在内部重写为/index.php?town=myselectedtown之类的内容,以便所选的值可用于$_GET超全局变量为$_GET['town']。如果它包含空白或有趣的东西,请注意对城镇名称进行URL编码...

看看这个示例设置:

RewriteEngine on
RewriteRule ^/?town/(.+)$ /index.php?town=$1 [L]

上述规则适用于动态配置文件(“.htaccess”)和真实的http服务器主机配置。

您当然可以在内置/town令牌的情况下定义您的网址(建议使用https://example.com/myselectedtown)。但这通常会引发其他网址模式的问题,因为从来都不清楚网址是指城镇名称还是别的......

一般提示:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。