如何在URL中的子路径中为单页面应用程序创建htaccess?

时间:2016-11-19 22:59:48

标签: apache .htaccess

我希望拥有一个单页应用,但只能在以下子网址中使用:

//The following would all be valid, but handled by the "index.html" 
//at http://www.test.com/webapp
http://www.test.com/webapp
http://www.test.com/webapp/settings
http://www.test.com/webapp/start

我希望所有网址看起来与上面完全相同,但需要处理:http://www.test.com/webapp/index.html

我还希望该页面能够处理 的以下网址:

http://www.test.com
http://www.test.com/contact
http://www.test.com/about

我该怎么做?

常规单页HTACCESS

<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.html [QA,L]
</ifModule>

2 个答案:

答案 0 :(得分:4)

只需添加答案以供参考。

来自@Croises的通讯:

  

“相同([QSA]不是[QA])但在webapp目录中”

为我工作。

“.htaccess”必须位于子目录上。

工作示例“.htaccess”:

<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.html [QSA,L]
</ifModule>

唯一不同的是“[QA,L]”到“[QSA,L]”

答案 1 :(得分:0)

标记为好的答案对我不起作用。在我的解决方案之下:

1)在放置应用的文件夹中创建.htaccess
2)粘贴下面的代码
3)将folder_name更改为您的文件夹名称。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /folder_name/
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /folder_name/index.html [L]
</IfModule>