Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 在Docker不工作的外部卷中设置.htcacaccess_Apache_Reactjs_Docker_React Router - Fatal编程技术网

Apache 在Docker不工作的外部卷中设置.htcacaccess

Apache 在Docker不工作的外部卷中设置.htcacaccess,apache,reactjs,docker,react-router,Apache,Reactjs,Docker,React Router,我有一个使用React路由器的React Web应用程序。我想使用漂亮的网址,并有 我想使用Docker设置一个服务器,并选择了它,我或多或少地将它连接到这样一个外部卷 docker run -d -p 80:80 -v ~/externalFolder/:/var/www/html/ nimmis/apache-php5. 为了使React路由器的browserHistory正常工作,我需要像这样设置.htaccess RewriteBase / RewriteRule ^index\.ht

我有一个使用React路由器的React Web应用程序。我想使用漂亮的网址,并有

我想使用Docker设置一个服务器,并选择了它,我或多或少地将它连接到这样一个外部卷

docker run -d -p 80:80 -v ~/externalFolder/:/var/www/html/ nimmis/apache-php5.
为了使React路由器的browserHistory正常工作,我需要像这样设置.htaccess

RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
我想如果我把它放在我的外部卷的根目录中,一切都应该是好的。但它不起作用


如何才能使其正常工作?

除了
.htaccess
文件中可能存在的键入错误外,请确保使用绝对路径,而不是
~
(外壳程序应将其解析为绝对路径,但最好确定并自行指定)

从“”

  • 容器目录
    必须始终是绝对路径,例如/src/docs
  • 主机目录可以是绝对路径或名称值。如果为主机目录提供绝对路径,Docker bind将装载到指定的路径
docker run-d-p 80:80-v/home//externalFolder/:/var/www/html/nimmis/apache-php5

我尝试使用的docker映像太有限,我需要对其进行太多的定制(安装额外的模块等),因此我只是选择滚动我自己的docker映像。我还使用了nginx。

它是
.htaccess
,而不是
.htcaccess
。你的文件名也有这个打字错误吗?没有,这个打字错误只出现在我的帖子里P@RikNieu然后尝试对其执行
docker exec bash
,以便从正在运行的容器中检查
.htaccess
(及其右侧)的内容。@RikNieu还仔细检查
docker日志的输出
(),以查看是否有任何线索。我检查了容器中的.htaccess,一切看起来都很好。但后来我把一堆垃圾放进去看看会发生什么。没有什么。因此,我将其设置为
deny from all
,但仍然为零。因此,我认为Apache的docker容器可能没有设置为允许.htaccess规则。我将尝试另一个配置文件并报告。确切地说:逻辑解释是服务器不使用该配置文件,而是依赖于另一个配置文件。现在的目标是找到哪一个。也许检查你的图像可以找到一些线索()从合适的基础图像推出你自己的图像也是一个好的解决方案+1.
docker run -d -p 80:80 -v /home/<yourLogin>/externalFolder/:/var/www/html/ nimmis/apache-php5