2017-01-16 90 views
0

我使用Apache httpd的2.2.25,但我在哪裏這個URL一個奇怪的問題:該URL是否有效?

http://localhost:227/fls-na.amazon.com/1/batch/1/OP/ATVPDKIKX0DER:152-6376176-0644930:ZAF7ZRT93XGRB80B53QA$uedata=s:%2Fgp%2Fuedata%3Fld%26v%3D0.626.31%26id%3DZAF7ZRT93XGRB80B53QA%26sc0%3DspLoadJs%26cf0%3D263%26pc0%3D264%26ld0%3D264%26t0%3D1484560805469%26sc1%3Dpopular-departments-visible%26cf1%3D265%26pc1%3D265%26ld1%3D265%26t1%3D1484560805470%26sc2%3Dairy-gw-resizeable-inline-video-visible%26cf2%3D266%26pc2%3D266%26ld2%3D266%26t2%3D1484560805471%26sc3%3Ddeals-image-visible%26cf3%3D267%26pc3%3D267%26ld3%3D267%26t3%3D1484560805472%26sc4%3DgwAtfAf%26cf4%3D267%26pc4%3D267%26ld4%3D267%26t4%3D1484560805472%26sc5%3DgwAtfCf%26cf5%3D267%26pc5%3D267%26ld5%3D267%26t5%3D1484560805472%26sc6%3DgwUIReadyCf%26cf6%3D267%26pc6%3D267%26ld6%3D267%26t6%3D1484560805472%26sc7%3DnavCF%26cf7%3D720%26pc7%3D720%26ld7%3D720%26t7%3D1484560805925%26ctb%3D1:1069 

從服務器返回404。但奇怪的是,有一個.htaccess文件包含一個mod重寫,以將每個URL重定向到一個php文件,在這個文件中我決定如何處理這個URL(這是'漂亮'的url)。 然而,從我的測試中,我只能說這個URL永遠不會使它對php文件,Apache的只是返回一個404

網址爲844個字符長度所以不應該是一個問題,所以還有什麼可能會造成Apache做到這一點?

+0

我認爲你必須檢查冒號。也許這個問題可以幫助你http://stackoverflow.com/questions/2053132/is-a-colon-safe-for-friendly-url-use – ZFNerd

+0

@ZFNerd我檢查了每個字符,但它似乎仍然是一個好的網址。即使在錯誤日誌中,Apache也只是表示即使應該重定向該文件也無法找到。 –

+0

冒號被用作url中的分隔符。例如https:// my-host:myport.tld。所以我認爲你的apache只會使用這個url直到第一個冒號。如果你想使用冒號作爲url的字符串,你必須將它們解開。 http://www.degraeve.com/reference/urlencoding.php – ZFNerd

回答

0

我jsut解決了這個問題,它是因爲編碼的%2F,這是一個斜線,它必須以某種方式與mod_rewrite混合。我只是現在必須弄清楚如何使Apache忽略編碼字符現在..... yay

0

有一個$和一些:在URL中是無效的。通常參數應該作爲查詢字符串傳遞。你實際上在uedata字段中有一個URL編碼查詢字符串。

404的一個原因是http://localhost:227/之後的所有內容都應該是現有的文件或映射的URL。 Apache會尋找一個名爲fls-na.amazon.com文件夾,如果它不存在或沒有URL映射,你會得到一個404

+0

我有其他文件不存在,但它們不會導致任何問題(因爲它們都被重定向到一個不同的文件) –

+0

你運行什麼樣的應用程序在Apache上?你自己的代碼? – Simmetric

0

Valid URL characters

錯誤檢查:檢查 你的Apache錯誤記錄導致錯誤的原因,這應該給你一個正確方向的提示。