我无法弄清楚如何进行重写,或者即使这是一个好主意。
为了组织起见,我想以以下方式在我的 webroot 中命名我的文件夹:
_fol.A
_fol.B
_fol.C
但我想,使用 .htaccess mod_rewrite,人们在访问时可以访问上述文件夹
http://example.com/Alpha
http://example.com/Bravo
http://example.com/Charlie
这是否只是让我的生活过于复杂,以便我可以让我的文件夹全部显示在一起?
我无法弄清楚如何进行重写,或者即使这是一个好主意。
为了组织起见,我想以以下方式在我的 webroot 中命名我的文件夹:
_fol.A
_fol.B
_fol.C
但我想,使用 .htaccess mod_rewrite,人们在访问时可以访问上述文件夹
http://example.com/Alpha
http://example.com/Bravo
http://example.com/Charlie
这是否只是让我的生活过于复杂,以便我可以让我的文件夹全部显示在一起?
我认为在物理_fol 中对文件夹进行分组是有效的。我对产品执行此操作,其中 url 只是产品名称/alpha,但它们位于 products/alpha 文件夹中。这很好地将它们与网站上的其他内容区分开来。
其他评论解决了您是否过于复杂的问题,例如,考虑使用最终名称,然后将它们放在文件夹中以进行组织。
也就是说,正如 CBroe 在评论中所说,回答如何做到这一点RewriteMap就是答案。
这是一个不依赖于任何特定 url 模式的产品 - 产品本身就是整个 url。RewriteCond 行确保它在映射文件中。根据需要保留或删除 _fol 前面的前导斜杠。
RewriteMap map_folder txt:d:\somepath\map_folder.txt [NC]
# Map folders.
RewriteCond ${map_folder:$1|NOT_FOUND} !NOT_FOUND
RewriteRule (.*) /_fol.${map_folder:$1} [NC,L]
map_folder.txt 文件包含以下条目:
Alpha A
Bravo B
Charlie C
如果它是其他一些 url,比如 /help,那么它不会在地图文件中找到,并且会通过进一步的规则。