我正在尝试使用 django 配置我的 apache 服务器。我在将 URL 与其视图匹配时遇到问题,并且不太确定问题的原因。我有以下配置:
.htaccess 文件:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ cyber.fcgi/ [QSA,L]
urls.py:
from django.conf.urls import patterns, include, url
from django.conf import settings
from views import index, test
from os import path
urlpatterns = patterns('',
(r'^$', index),
(r'^test/$', test),
)
我遇到的问题是,所有不以 /cyber.fcgi/ 开头的 URL 都会自动匹配索引视图。为了进行测试,我打印了视图看到的 URL:
www.example.com/test/ <= matches index with url /test/
www.example.com/test <= matches index with url /tes/
www.example.com/cyasdasd/123 <= matches index with url /cyasdasd/12/
www.example.com/cyber.fcgi/ <= matches index with url /cyber.fcgi/
www.example.com/cyber.fcgi/test <= matches test with url /cyber.fcgi/test/
www.example.com/cyber.fcgi/asd <= no match
似乎只有直接调用 /cyber.fcgi 时才会出现正确的行为。我假设这是一个问题,RewriteRule ^(.*)$ cyber.fcgi/ [QSA,L]
但我并不完全确定,也不知道如何修复它。任何帮助都将不胜感激。
答案1
RewriteRule ^(.*)$ cyber.fcgi/$1 [QSA,L]
最后少了 1 美元。