Исключение скрипта из общих правил UrlRewrite - PullRequest
0 голосов
/ 23 марта 2010

У меня есть следующие правила переписывания для сайта:

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]

но, если честно, я не очень разбираюсь в урлрерите и не знаю, что мне писать. Я просто знаю, что выше будет генерировать хорошую ошибку 500.

Я много смотрю на stackoverflow и другие веб-сайты на ту же тему, но вижу только людей, пытающихся исключить каталоги, а не файлы. В худшем случае я мог бы добавить скрипт в отдельную директорию и исключить директорию из перезаписывающих файлов, но не так, поскольку скрипт действительно должен оставаться в корне.

Только что попробовал:

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

но это тоже ничего не сделало.

Кто-нибудь, кто может помочь мне в этом вопросе?

Заранее спасибо.

Стивен Эссер Программист ColdFusion

1 Ответ

0 голосов
/ 24 марта 2010

Пожалуйста, попробуйте поставить следующую строку в верхней части вашей конфигурации (после включения RewriteEngine):

RewriteRule ^shoplink.cfm$ - [L]
...