显然,网络上有很多关于 mod 重写的讨论和答案。但是,我很难掌握它们。所以我想我会在这里问。
我要求重写规则来执行 Andy Joslin 在此处的评论中解释的内容:https://stackoverflow.com/a/11100438
这是我当前在 example.com 根目录下的目录结构
我想将所有请求重定向到 app/index.html,除了对/api 的请求。
例如:
http://example.com/categories/electronics/ipod实际上就像去http://example.com/app/index.html/categories/electronics/ipod
但是,我希望 app/index.html 部分被隐藏。
然后,对 http://example.com/api 的请求会出现异常。因为我需要向这些 url 路径发出 ajax 请求。
感谢您的任何帮助/指导。
最佳答案
这里有一些东西可以帮助你(把它放在你的/.htaccess 文件中):
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/api
# otherwise forward it to index.html
RewriteRule ^.*$ - [NC,L]
RewriteRule ^app/. /app/index.html [NC,L]
注意:对于较新的 Apache 版本,另请参阅下一个答案,它使用更简单的
FallbackResource
关于apache - 重写 apache 2 的规则以与 angular js 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284038/