我正在使用PathLocationStrategy,并在apache上部署了angular14应用程序。我的棱角分明的应用程序文件在文件夹"中;测试";,它在文件夹"内;public_html";。
因此文件夹路径如下:/var/www/game_sites/public_html/test-
我已经更改了"中的.htaccess文件;public_html";但我仍然无法找到文件。
我的基准裁判看起来是这样的:
<base href="/teste/">
重写.htaccess文件中的规则。
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# If the requested resource doesn't exist, use index.html
RewriteRule ^/index.html
请问我做错了什么?我猜ReWrite规则可能错了?
我尝试更新重写规则并更改为useHash,但无效
RewriteRule ^/index.html
RewriteRule
参数之间缺少空格。
但是,如果所有文件都在/test
子目录(包括index.html
(中,并且URL中存在/test
,则.htaccess
文件也应在/test
子目录中,而不是文档根目录中。然后应该是这样的:
# /test/.htaccess
DirectoryIndex index.html
RewriteEngine On
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L]
请注意,在RewriteRule
替换中,index.html
之前没有斜线。
相对替换字符串是相对于包含.htaccess
文件的目录的。同样,RewriteRule
模式匹配的URL路径也是相对于包含.htaccess
文件的目录的。
第一条规则只是一个优化,没有它也能起作用。