Apache Web服务器中的大量动态URL

时间:2018-07-10 07:47:08

标签: apache mod-rewrite

问题摘要:Apache中对seo友好的URL的解析

说明:

  • 物理网址可以具有一个或多个相关的seo友好网址
  • seo友好的URL和 phisical url之间的映射存储在数据库中(可以是KV存储或传统 sql存储)
  • seo友好网址的数量很大(也许是数百万

可能的解决方案: 已经尝试了一些解决方案:

解决方案1 ​​ :. htaccess生成 我们的cms会生成类似于seo友好网址的文件夹结构,例如,如果seo友好网址为/foo/bar/,则会创建以下文件夹结构:

/foo
    /bar
       .htaccess, 

.htaccess文件仅包含一个<{>物理网址的RewriteRule

这种方法很好地起作用,但是它涉及到生成(和维护)文件夹结构和.htaccess文件的负担

解决方案2 :使用外部程序RewriteMap

将seo友好的网址映射到物理网址时,可以使用由外部程序支持的RewriteMap:

RewriteMap seourlmap prg:/path/to/script/seourlmap.py
RewriteRule ^(.*)$  ${seourlmap :$1} [NE,L,R]

外部程序可以是使用KV商店(即Redis)来解析seo友好网址的phyton脚本(例如,参见https://github.com/terryjbates/redis-apache-rewrite

此方法更加方便,因为所有seo-url映射逻辑都被 externalized 扩展为易于维护的外部程序

...但是我们对解决方案的性能有所担心(请参见https://httpd.apache.org/docs/2.4/rewrite/rewritemap.html的“注意”注释)

解决方案3 开发自定义的apache模块

以C / apache / native方式构建一个自定义的apache模块,该模块与SOLUTION 2(使用KV商店映射seo友好的url)的功能基本相同

**任何想法,替代方法??? **

0 个答案:

没有答案