Skip to content

Commit 1d0b3d1

Browse files
committed
docs: add "Hosting with Subfolder"
1 parent 0c81604 commit 1d0b3d1

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

user_guide_src/source/installation/running.rst

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,86 @@ e.g., **apache2/conf/extra/httpd-vhost.conf**:
171171
If your project folder is not a subfolder of the Apache document root, then your
172172
``<VirtualHost>`` element may need a nested ``<Directory>`` element to grant the web server access to the files.
173173

174+
Restart Apache.
175+
174176
Testing
175177
-------
176178

177179
With the above configuration, your webapp would be accessed with the URL **http://myproject.local/** in your browser.
178180

179181
Apache needs to be restarted whenever you change its configuration.
180182

183+
Hosting with Subfolder
184+
======================
185+
186+
If you want a baseURL like **http://localhost/myproject/** with a subfolder,
187+
there are three ways.
188+
189+
Making Symlink
190+
--------------
191+
192+
Place your project folder as follows, where **htdocs** is the Apache document root::
193+
194+
├── myproject (project folder)
195+
│ └── public
196+
└── htdocs
197+
198+
Navigate to the **htdocs** folder and create a symbolic link as follows::
199+
200+
> cd htdocs/
201+
> ln -s ../myproject/public/ myproject
202+
203+
Using Alias
204+
-----------
205+
206+
Place your project folder as follows, where **htdocs** is the Apache document root::
207+
208+
├── myproject (project folder)
209+
│ └── public
210+
└── htdocs
211+
212+
Add the following in the main configuration file, e.g., **apache2/conf/httpd.conf**:
213+
214+
.. code-block:: apache
215+
216+
Alias /myproject /opt/lamp/apache2/myproject/public
217+
<Directory "/opt/lamp/apache2/myproject/public">
218+
AllowOverride All
219+
Require all granted
220+
</Directory>
221+
222+
Restart Apache.
223+
224+
Adding .htaccess
225+
----------------
226+
227+
The last resort is to add **.htaccess** to the project root.
228+
229+
It is not recommended that you place the project folder in the document root.
230+
However, if you have no other choice, like on a shared server, you can use this.
231+
232+
Place your project folder as follows, where **htdocs** is the Apache document root,
233+
and create the **.htaccess** file::
234+
235+
└── htdocs
236+
└── ci436 (project folder)
237+
└── .htaccess
238+
└── public
239+
240+
And edit **.htaccess** as follows:
241+
242+
.. code-block:: apache
243+
244+
<IfModule mod_rewrite.c>
245+
RewriteEngine On
246+
RewriteRule ^(.*)$ public/$1 [L]
247+
</IfModule>
248+
249+
<FilesMatch "^\.">
250+
Require all denied
251+
Satisfy All
252+
</FilesMatch>
253+
181254
Hosting with mod_userdir (Shared Hosts)
182255
=======================================
183256

0 commit comments

Comments
 (0)