目前..
environ['SERVER_NAME']
可以获取域名。比如..
domaint.tld
或
sub.domain.tld
但它也能得到......
domain.tld/file/in/question.extension
还呢?
如果可能..那么这可以以某种方式取代.. mod重写并做这样的事情..
假设网址为
domain.tld/01
我们将其拆分为
/
然后如果它从0开始,它必须是我们正在寻找的东西.. 使用'0'之后的数字
提取可变内容。
可以替换mod_rewrite吗?
由于复杂的正则表达式,我不喜欢触摸mod_rewrite。
答案 0 :(得分:0)
如果意图是将重写的URL作为子请求反馈到Apache整体并且请求内容仍然可用,则它无法真正替换mod_rewrite。您所能做的就是在特定的Python WSGI应用程序中执行URL重写以使用URL和请求。
第一个关于请求内容的限定条件是,当使用mod_wsgi的守护进程模式时,可以返回没有内容的200响应和Location响应头,其中Location头的值是服务器相对URL。这将导致在Apache级别执行新的子请求,但这样做只能发出没有请求内容的GET请求。
因此,200 / Location响应可以用作WSGI应用程序重新路由WSGI应用程序处理回Apache的请求的方式,以提供不同的资源,例如静态文件甚至PHP应用程序。这绝不是一种可用于替换mod_rewrite的通用机制,只适用于某些用例。
在访问原始请求信息的其他部分的具体点上,您有:
请参阅WSGI规范中的URL重建:
在Apache / mod_wsgi下你也有REQUEST_URI,但这可能很复杂,因为它没有被解码也没有规范化,可以是服务器相对URL,或者技术上是一种URI格式,包括方案和主机/端口信息。