0

我有以下网站的重写规则:

RewriteEngine On

# Stop reading config files
RewriteCond %{REQUEST_FILENAME} .*/web.config$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} .*/\.htaccess$ [NC]
RewriteRule ^(.+)$ - [F]

# Rewrite to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^(/bilder_losning/|/bilder/|/gfx/|/js/|/css/|/doc/).*
RewriteRule ^(.+)$ index.cfm?smartLinkKey=%{REQUEST_URI} [L]

现在我必须从上述规则中排除一个包含其最终查询字符串的脚本,以便我可以以正常方式访问和执行它,此时整个 url 被忽略并转发到索引页面。

我需要访问根目录中的脚本 shoplink.cfm,该脚本接受变量 tduid 和 url (shoplink.cfm?tduid=1&url=)

我试图用这个来解决它:

# maybe?: 
RewriteRule !(^/shoplink.cfm [QSA]

但老实说,我对 urlrewriting 没有太多线索,也不知道我应该写什么。我只知道上面会产生一个很好的 500 错误。

我一直在 stackoverflow 和其他有关同一主题的网站上四处寻找,但我看到的只是人们试图排除目录,而不是文件。在最坏的情况下,我可以将脚本添加到单独的目录并从重写器中排除该目录,但不是因为脚本应该真正保留在根目录中。

刚刚也试过:

RewriteRule ^/shoplink.cfm$ $0 [L]

但这也没有任何作用。

谁能在这个问题上帮助我?

提前致谢。

Steven Esser ColdFusion 程序员

4

1 回答 1

0

请尝试将以下行放在配置的顶部(在 RewriteEngine 开启之后):

RewriteRule ^shoplink.cfm$ - [L]
于 2010-03-24T08:49:37.220 回答