Unexplained redirect using VirtualHosts and ServerAlias [closed] - apache

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 9 years ago.
Improve this question
Using a virtual host, and a server alias, I'm getting a strange redirect that I do not understand where it is coming from.
Using stock apache2 on Ubuntu 12.04. Only the following changes to files in /etc/apache2/...
I have added a new virtual host as follows in the file sites-available/foo-com and enabled it with a2ensite
<VirtualHost *:80>
ServerName www.foo.om
ServerAlias foo.com
ServerAdmin webmaster#localhost
DocumentRoot /var/www/www.foo.com
<Directory /var/www/www.foo.com/>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
I also have a second virtual host for www.bar.com, which is exactly the same as above, but with foo replaced by bar
I have changed the default virtual host to a different document root
DocumentRoot /var/www/default
<Directory /var/www/default/>
.....
When I navigate to http://foo.com, I get a 301 redirect to http://www.foo.com/www.foo.com , which obviously returns a 404. Even more strangely, navigating to http://bar.com returns the relevant site correctly without a redirect.
I've been tearing my hair out trying to understand this strange behaviour. I've verified that there are no redirect's anywhere else in the apache confs. There is no reference to foo.com anywhere except the virtual host above. There is no .htaccess files in the document root.. I created the directory from scratch.
What else could be causing this?

From http://httpd.apache.org/docs/2.2/en/howto/htaccess.html
Further note that httpd must look for .htaccess files in all
higher-level directories, in order to have a full complement of
directives that it must apply. (See section on how directives are
applied.) Thus, if a file is requested out of a directory
/www/htdocs/example, httpd must look for the following files:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Looking at your rewrite log, it would seem you have a .htaccess file stuck in /var/www . Removing it or, preferably, disabling .htaccess should solve your problem.

Related

Configure apache vhost for 3-rd level subdomain [closed]

Closed. This question is not about programming or software development. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 12 hours ago.
Improve this question
I have VDS server without a normal domain. It has only DNS zone vm-4bbd6831.na4u.ru provided by my hosting service NetAngels.
Server has Ubuntu 22.04 with LAMP stack installed.
I should move to this server multiple websites, each website on its subdomain.
For instance:
site1 has address site1.vm-4bbd6831.na4u.ru
site2 has address site2.vm-4bbd6831.na4u.ru
and so on...
I tried configuring vsost like this:
<VirtualHost *:80>
ServerName site1
ServerAlias site1.*
DocumentRoot /var/www/site1
<Directory /var/www/site1/>
Options +ExecCGI -Includes -Indexes
AllowOverride All
</Directory>
I think i tried to change ServerName and ServerAlias with all possible values, but every time I reload apache and try to access http://site1.vm-4bbd6831.na4u.ru/ in web browser, I get only 'Server not found' message.
Give me please a clue, how can i configure vhosts...
I'll be very pleased, if you explain me how to properly use ServerName and ServerAlias
Thanks!!!

Apache Virtual Host doesn't work [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 6 years ago.
Improve this question
I'm trying to get Apache Virtual Host to work but it wont catch the domains and goes out on the internet instead.
I've enabled the Virtual Host in the Config file:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
My httpd-vhosts.conf file looks like this:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "//nas/Web Design/Sites"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster#fdn.dk
DocumentRoot "//nas/Web Design/Sites/Fdn"
ServerName fdn.dk
ServerAlias www.fdn.dk
ErrorLog "logs/fdn/error.log"
CustomLog "logs/fdn/access.log" common
</VirtualHost>
http://Localhost works fine but when i type fdn.dk or www.fdn.dk the browser tries to find the site on the internet instead of looking at my local folder.
What is wrong...??
I tried to find a solution on the internet but without luck.
Do I need to change something in the host file ???
Kind Regards
Flemming
Yes, you need to add that domain name to /etc/hosts file if you are using an operating system that has it.
Or to C:\WINDOWS\system32\drivers\etc\hosts if you are using Windows.
Example of record:
127.0.0.1 www.fdn.dk

How to connect to a specific website on localhost? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I have a local Apache server running on the network and I've got a number of tester machines. I want to be able to connect to a specific website on the localhost, at the moment it just connects to the first website.
For example: 192.168.1.125/mywebsite.
I've looked around I cannot find the method of conneciton, I know it's something really simple but everywhere I look answers a different problem. (Maybe this is too simple).
So basically I'm asking, how do I access the other servername though the browser. (setup is like so:)
<VirtualHost *:80>
DocumentRoot c:/vhosts/website1
ServerName website1
</VirtualHost>
<VirtualHost *:80>
DocumentRoot c:/vhosts/website2
ServerName website2
</VirtualHost>
I've tried
192.168.1.125~mywebsite
192.168.1.125:80/mywebsite.
192.168.1.125-mywebsite.
Can anyone help me here? Also what's the English for this? Namespace? Name-server or something?
*I get the error "Object not found" with these.
Name-based serving of apache is based on the actual hostname in the request. To make this work, you have to be able to reference that IP by any names you need. You have to be able to do http://hostname/ and not http://IP for name-based virtual hosts to work.
You can do this either with a hosts file (for a single host) or over DNS. Neither is a programming problem though.
Use virtual hosts. i.e. have something like this in the httpd.conf file:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName <make up a hostname here e.g. example.com>
DocumentRoot "<path to the web site files>"
</VirtualHost>
<Directory "<path to the web site files>">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Then add the following to the to the hosts file in C:\Windows\System32\drivers\etc
127.0.0.1 <made up hostname as above>
Then you can access the web site as http://<hostname as above>
Guess it will be the same for Linux except the file would be /etc/hosts. You can repeat this as often as necessary.
EDIT Use the following it /etc/hosts on both the machine running the server and the machine running the browser
192.168.1.125 website2.example.com
192.168.1.125 website1.example.com
Then edit the two copies of the virtual hosts stuff above using the website1.example.com and website2.example.com
Shot in the dark
Map your testing machines to your server
~/test_machines/web_1
~/test_machines/web_2
~/test_machines/web_3
Then add the site entries to your vhost.conf. Use VirtualDocumentRoot from mod_vhost_alias. You can see the examples here: http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

Can't link URL with virtual host [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I am really new to servers and apache however I've been struggling for a while now and maybe somebody can help me.
So I have set up an apache server that works (if I use the IP address I can reach the website and it works properly). I have linked the url with the nameservers and my virtual host file looks like (located in /etc/apache2/sites-available/mysite)
<VirtualHost 12.34.56.78:80>
ServerAdmin admin#mysite1.com
ServerName mysite1.com
ServerAlias www.mysite1.com
DocumentRoot /srv/www/mysite1.com/public_html/
ErrorLog /srv/www/mysite1.com/logs/error.log
CustomLog /srv/www/mysite1.com/logs/access.log combined
</VirtualHost>
The weirdest thing is it worked yesterday and in the meantime I only installed an FTP server ... Any ideas of what I might have done wrong?
Thank you
If this is on Debian, you also need to link your config file in /etc/apache2/sites-available to /etc/apache2/sites-enabled, to let the config scripts know that the file is not only available, but also enabled.
Another thing might want to check is NameVirtualHost 12.34.56.78:80 directive somewhere in Apache config (or, optionally NameVirtualHost *:80).

Apache on localhost: give virtual hosts specific servers name [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Ok, I ask my question first and below are details of what I have so far trying to solve the thing:
On Apache running on localhost, I want to have different virtual hosts that would be accessible through url:
http://name-of-the-virtual-host.name-of-the-machine/
Details:
So I have Apache running on port 8080 of my laptop. Linux Mint, so Debian distro. Everything is in local for testing purposes, so no DNS involved! The IP address I use is 127.0.1.1 which has the domain of my computer, called fabjoa. On the file /etc/apache2/apache2.conf, I've put:
ServerName fabjoa
In the file /etc/hosts, there is indeed the line
127.0.1.1 fabjoa
In the file /etc/apache2/ports.conf
NameVirtualHost *:8080
Listen 8080
Now, the conf file of my virtual host. The file is called is goyahkla and is located on /etc/apache2/sites-available/ and has a symbolic link in /etc/apache2/sites-enabled. On this file, I have the following:
<VirtualHost *:8080>
ServerName goyakhla.fabjoa
ServerAdmin webmaster#localhost
DocumentRoot /var/sites/goyahkla
....
<Directory /var/sites/goyahkla/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
...
</VirtualHost>
Running apache2ctl configtest gives me Syntax OK. Now, on browser, opening http://fabjoa:8080/ does point to the Virtual Host goyahkla (beacause that's the only one I have), but http://goyahkla.fabjoa:8080 is not found. Other debugging:
telnet goyahkla.fabjoa:8080
telnet: could not resolve goyahkla.fabjoa:8080/telnet: Name or service not known
lynx goyahkla.fabjoa:8080
Looking up 'goyahkla.fabjoa' first
Looking up 'www.goyahkla.fabjoa.com', guessing...
Looking up goyahkla.fabjoa first
Looking up www.goyahkla.fabjoa.com, guessing...
Looking up www.goyahkla.fabjoa.com:8080
Making HTTP connection to www.goyahkla.fabjoa.com:8080
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://www.goyahkla.fabjoa.com:8080/
Any idea on how purpose could be achieved?
Thank you
Don't you need to specify full hostname un hosts file? Like "goyahkla.fabjoa" instead of "fabjoa"?
Anyway, this is not programming question and should be asked on serverfault.com