【问题标题】:Mod Rewrite Trap /ABCMod重写陷阱/ABC
【发布时间】:2012-09-13 00:36:59
【问题描述】:
假设我有一个这样的 URL:
http://example.com/ABC
如何在 / 之后捕获 ABC 并将其放入 partner_code? ABC 始终是 3 或 4 个字母的字符串,后面永远不会有任何内容。
这会导致网站图片、CSS 文件等崩溃:
RewriteRule ^(.*)$ index.php?partner_code=$1&utm_source=partner&utm_medium=link&utm_campaign=$1 [L]
【问题讨论】:
标签:
apache
.htaccess
mod-rewrite
【解决方案1】:
你在正确的轨道上。如果您包含一些条件使其忽略对现有资源的请求(例如 css/images/etc.)并且对正则表达式更加严格,它应该可以工作。
试试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z]{3,4})$ index.php?partner_code=$1&utm_source=partner&utm_medium=link&utm_campaign=$1 [L]