Directing url request to a subfolder on ubuntu server - redirect

Here is the task
When user enters in browser domain.com/something/something,
get files not from domain.com/something/something as was expected, but from
domain.com/something/something/www
In my /etc/apache2/sites-available folder I've found domain.com.conf
And it contains only this
<virtualhost *:80>
ServerName domain.com
DocumentRoot /var/www/main
</virtualhost>
So how should I edit my domain.com.conf file ?

You are on the right path.
If you have only one domain
in /etc/apache2/sites-available/default modify the line :
DocumentRoot /var/www/domain/www/
And then restart apache :
$ sudo service apache2 restart
This will change the path for the default host.
If you have several domains
You need VirtualHosts. If you have already VirtualHosts, you probably have multiple files in /etc/apache2/sites-available/, find the one managing your domain. Otherwise create one from default by sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/domain.com. It should contains something like this at the begining :
<VirtualHost *:80>
ServerAdmin webmaster#localhost
ServerName domain.com
DocumentRoot /var/www/domain/www/
<Directory /var/www/domain/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
....many stuff
</VirtualHost>
Then enable the site and restart apache :
$ sudo a2ensite domain.com
$ sudo service apache2 restart
If you just want that a particular path /something/something/ be served from /domain.com/something/something/www/, set up an alias :
Alias /something/something /something/something/www

Related

Where will be the myserver.conf, hosts, and ports.conf in cPanel/WHM?

I want to customize my client's site with virtual host block. Manually I did this request on the Ubuntu server 18.04. But now I have the cPanel and the WHM access.
I read these official links.
Modify Apache Virtual Hosts with Include Files
Modify Virtualhost Containers With Include Files
But I messed regrading the include files and those directories as,
/usr/local/apache/conf/userdata/ssl/2_2/$user/$domain/$includename.conf
and
/etc/apache2/conf.d/userdata/ssl/2_4/user/domain/includename.conf
And the following scripts
To rebuild the httpd.conf file, run the following script:
/usr/local/cpanel/scripts/rebuildhttpdconf
To restart Apache, run the following script:
/usr/local/cpanel/scripts/restartsrv_httpd
Please clearly tell how can I merge this to be put using cPanel and WHM.
vhost
<VirtualHost *:9876>
ServerName 139.59.xxx.xxx
DocumentRoot /home/username/newfile/doneapi/public
<Directory /home/username/newfile/doneapi/public>
AllowOverride All
</Directory>
</VirtualHost>
hosts file
127.0.0.1 139.59.xxx.xxx
ports.conf
Listen 9876
Thanks in advance

Apache2 Default Virtual Host in Virtualmin

I am raging here more than 3 hours how to make Apache2 work for me how I want.
I want when I access IP address directly, Apache2 serve me content from /var/www/html and not from virtualhost.
I tested everything including 000-default.conf file:
<VirtualHost *>
ServerName 'baterka.xyz'
ServerAlias 'MY_IP'
DocumentRoot /var/www/html
</VirtualHost>
Nothing works. Apache2 (or Virtualmin) everytime use first VirtualHost in list but not my default file. How to make it works!

ngrok setup with travis ci gives 404 error

I am trying to tunnel the localhost in travis ci with ngrok. So far I have been able to expose the site, but unfortunately any curl request to a simple text file gives me 404 error. Only index pages are visible/downloadable. How can I configure it, so that files can be downloaded.
This is my virtual host config:
<VirtualHost *:80>
DocumentRoot $1
<Directory $1>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
DirectoryIndex index.php index.html
</VirtualHost>
$1 is the random subdomain name given by ngrok (I am storing the virtual host config as a string) .
This is the /etc/hosts file at some point:
127.0.0.1 a3a1a93a.ngrok.io
127.0.0.1 8dbc2f3e.ngrok.io
## cookbook:: travis_build_environment
## file:: templates/default/etc/cloud/templates/hosts.tmpl.erb
127.0.1.1 testing-gce-478a98cf-1fda-48f0-9b75-4c72e55e1305 testing-gce-478a98cf-1fda-48f0-9b75-4c72e55e1305 ip4-loopback trusty64
The first two entries are the tunneled subdomains by ngrok.

AH01630: client denied by server configuration

I am assuming that I have tried all possible solutions mentioned here, but I am still unable to fix the problem.
The problem is with the httpd.conf and .htaccess files.
If I run tail -f access.log I get :
AH01630: client denied by server configuration: /opt/rpkica/share/rpki/wsgi/rpki.wsgi
This is the configuration I'm using :
<Directory /opt/rpkica/share/rpki/wsgi>
Order allow,deny
AllowOverride All
Allow from All
#Require all granted
</Directory>
Try to find .htaccess file recursively from "document root" for that virtual host. .htacces have a precedence over main configuration so check if you have deny configuration in any .htaccess file.
you need to check httpd.conf file
<Directory /path/to/directory>
Options FollowSymlinks
AllowOverride none
Require all granted
</Directory>
If you may get an error on XAMPP server, open httpd-xampp.conf file under the path /opt/lampp/etc/extra
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
# Require local
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
Just command the "Require local" then restart your lampp service
# /opt/lampp/lampp restart

URL is adding the root folder

I'm using Ubuntu Server with Apache2 to host my websites.
I have two domains, www.test.com and www.domain.com (not real names)
Inside of my sites-available I have the default that is pointed to my www.test.com domain and then I have a created one for www.domain.com inside that I have:
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /var/www/domainfolder
<Directory />
Options +FollowSymLinks
AllowOverride all
</Directory>
</VirtualHost>
Now the website works, I can navigate to it and use it but since I'm using it for wordpress when ever I click on say Admin CP it will try to navigate to www.domain.com/domainfolder/admin-cp/ I'm just not sure why it's trying to access the folder it's stored in?
Using .htaccess just gives me an internal server error because it's always going down a directory, here is the code:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.*)folder
RewriteRule ^(.*)$ domainfolder/$1 [L]