2011-04-25 50 views
3

針對使用mod_rewrite時出現問題的第二天進行對抗。已啓用Apache mod_rewrite,但未能正常工作

系統操作系統:Windows XP HTTP服務器:Apache httpd的2.2

從httpd.conf中夫婦與線

LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule proxy_module modules/mod_proxy.so 
DocumentRoot "N:/Web-dev/www" 

<Directory "/"> 
    Options Indexes +FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

<Directory "N:/Web-dev/www"> 
    Options Indexes +FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

的.htaccess包含:

RewriteEngine on 
RewriteRule ^alice.html$ bob.html 

PHP的信息說

Loaded Modules core mod_win32 mpm_winnt http_core mod_so mod_actions mod_alias mod_asis mod_auth_basic mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dir mod_env mod_include mod_isapi mod_log_config mod_mime mod_negotiation mod_setenvif mod_rewrite mod_proxy mod_php5 

兩個文件都存在,裝載alice.html,它仍然加載它,在rewrite.log,它表明:

127.0.0.1 - - [25/Apr/2011:11:01:27 +0300] [localhost/sid#7b5148][rid#2bc70b0/initial] (1) [perdir N:/Web-dev/www/] pass through N:/Web-dev/www/alice.html 

我eaven試圖測試,如果讀取.htaccess文件,加入一些jibberish重寫引擎命令,它證明:

[Mon Apr 25 10:47:04 2011] [alert] [client 127.0.0.1] N:/Web-dev/www/.htaccess: Invalid command 'ReDELETEMEwriteEngine', perhaps misspelled or defined by a module not included in the server configuration 

但要做出一樣的,要重寫規則,改變不了什麼,就像如果它忽略這些。我沒有選擇,該怎麼做!?

+0

該文件是否真的叫做'alice.html'而不是'Alice.html'或類似的東西?案件事宜。 – joschi 2011-04-25 08:39:57

+0

應該移動到serverfault.com – joschi 2011-04-25 08:40:18

+0

@joschi是的,文件真的叫alice.html,可以打開。我在這裏看到其他相關問題,我希望有人會幫助... – Deele 2011-04-25 11:21:22

回答

9

做了更多的測試,我得到了奇怪的結果 - 在RewriteEngine命令之前添加了一些DELETEME - 它失敗並報錯,如果之後添加了任何東西,它會忽略它,就像沒有錯誤!

然後我回想起我有關正則表達式和文本分析的經驗,我想知道,如果篡改CRLF會做任何好事,並且揭露什麼是當前文件新行符號,那麼發現他們在哪裏CR。據我所知,Apache是​​基於unix的軟件,我認爲它可能會誤解這些軟件,所以我將它們轉換爲LF's,就是這樣,一切都在事後起作用!

注意未來 - 確保與你的編輯器(EditPlus的,記事本+ +等),您的.htaccess新行符號是多平臺兼容(CRLF),或至少UNIX兼容(LF),如果與Apache的工作!

+0

+1好,您可以將自己的答案標記爲**接受** – anubhava 2011-04-25 12:40:37