我无法在本地主机的url中使用“:”打开url 例如,我无法打开http://bolehnonton.dev/Halo-4:-Forward-Unto-Dawn(这是在我的localhost中)。浏览器中的结果页面是
禁止访问!
您无权访问请求的对象。它是 读取保护或服务器无法读取。
如果您认为这是服务器错误,请与网站管理员联系 错误403 bolehnonton.dev
Apache / 2.4.16(Win32)OpenSSL / 1.0.1p PHP / 5.6.12
但我可以使用我的托管http://bolehnonton.com/Halo-4:-Forward-Unto-Dawn
打开类似的网址虽然两者的htaccess文件都很相似。
这里是我的xampp上的vhost配置
<VirtualHost *:80>
ServerAdmin webmaster@bolehnonton.dev
DocumentRoot "C:/xampp/htdocs/bolehnonton.com"
ServerName bolehnonton.dev
<Directory C:/xampp/htdocs/bolehnonton.com>
Allow from all
Require all granted
Options Indexes
</Directory>
</VirtualHost>
答案 0 :(得分:1)
这是Windows上的Apache bug,在2009年被声明为WONTFIX。我在libapr-1.dll
中修复了它,在test_safe_name
中修复了srclib\apr\file_io\win32\filestat.c
以返回ERROR_FILE_NOT_FOUND
的名称结肠。
if (*name == '?' || *name == '*')
return APR_EPATHWILD;
else
return (*name == ':') ? APR_FROM_OS_ERROR(ERROR_FILE_NOT_FOUND) : APR_EBADPATH; // was: APR_EBADPATH;
答案 1 :(得分:0)
我刚遇到URL中冒号的相同问题。 我正在实现分页,并且在冒号之后指定了URL中的页面数。
针对我的情况的解决方案是将冒号替换为开发环境(我的Windows机器)中的另一个字符,而将冒号用于生产(Linux机器)。
也许我的故事会对某人有所帮助。