2017-01-16 28 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错误记录导致错误的原因,这应该给你一个正确方向的提示。