How to exclude Googlebot from log file? - apache

I would like to exclude this kind of log entries from access.log
66.249.78.134 - - [01/Apr/2016:10:56:29 +0000] "POST /get_subtitle HTTP/1.1" 200 416 "https://example.com/?artist=name&track=song" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
So, in my 000-default.conf and default-ssl.conf files I set these rules
SetEnvIFNoCase User-Agent "^Googlebot" dontlog
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
Why Apache continues to log Googlebot activity?

Related

Apache website conversion from alias to virtualhost

I have to take over an internal Web server that has been configured by a colleague who is no longer there. Our developpers team asks me to convert applications URLs from an Alias to a Virtualhosts (subdomain naming) system. For instance:
https://srv-intra.mydomain.fr/basecolldev
should become
https://basecolldev.mydomain.fr
Environment specifications:
Linux OpenSUSE Leap 15.3
Server version: Apache/2.4.51 (Linux/SUSE)
PHP 7.4.6 (cli) ( NTS )
Issue description: I can connect to https://basecolldev.mydomain.fr despite some 404 errors showing in access_log file (see at the end of the post). I have then a 404 error page when clicking the login button that redirects to https://basecolldev.mydomain.fr/login. The login page is found and displayed properly when I manually modify the URL to https://basecolldev.mydomain.fr/index.php/login. This means that /index.php is not required for home page connection but is for browsing the website. I need to permanently prevent the /index.php suffix to show up in URL.
I describe below what I have configured so far and what remains unfunctionnal.
I have first created a new vhost file /etc/apache2/vhost.d/basecolldev-ssl.conf :
<VirtualHost basecolldev.mydomain.fr:443>
DocumentRoot "/var/www/BaseCollDev/public"
ServerName basecolldev.mydomain.fr
ErrorLog /var/log/apache2/basecolldev-error_log
TransferLog /var/log/apache2/basecolldev-access_log
LogLevel alert rewrite:trace8
<Directory /var/www/BaseCollDev/public>
#Order allow,deny
#allow from all
#AllowOverride All
Require all granted
Options -Indexes -Includes -ExecCGI -FollowSymlinks
</Directory>
</VirtualHost>
I have then commented the lines related to the application Directory tag in file /etc/apache2/default-server.conf :
DocumentRoot "/var/www"
<Directory "/var/www">
Options FollowSymLinks
AllowOverride None
<IfModule !mod_access_compat.c>
Require all granted
</IfModule>
<IfModule mod_access_compat.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
Alias /icons/ "/usr/share/apache2/icons/"
Alias /phpmyadmin "/srv/www/htdocs/phpMyAdmin"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
<IfModule !mod_access_compat.c>
Require all granted
</IfModule>
<IfModule mod_access_compat.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
#<Directory "/var/www/BaseCollDev/public">
# AllowOverride All
# Require all granted
#</Directory>
ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"
<Directory "/srv/www/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
<IfModule !mod_access_compat.c>
Require all granted
</IfModule>
<IfModule mod_access_compat.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
<IfModule mod_userdir.c>
UserDir public_html
Include /etc/apache2/mod_userdir.conf
</IfModule>
IncludeOptional /etc/apache2/conf.d/*.conf
IncludeOptional /etc/apache2/conf.d/apache2-manual?conf
Extract from /var/log/apache2/basecolldev-access_log file relating to a connection to the home page:
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET / HTTP/1.1" 200 54206
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/runtime.d94b3b43.js HTTP/1.1" 200 1505
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/app.13d64c6c.js HTTP/1.1" 200 236
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/2.9935185b.css HTTP/1.1" 200 64639
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/app.6cefaab5.css HTTP/1.1" 200 163752
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/2.28b18d57.js HTTP/1.1" 200 261268
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/images/logoEdVBlanc.png HTTP/1.1" 200 6579
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /_wdt/b07606 HTTP/1.1" 404 1280
10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/fonts/fa-solid-900.e8a427e1.woff2 HTTP/1.1" 200 78196
10.9.4.140 - - [03/Jun/2022:11:02:32 +0200] "GET /favicon.ico HTTP/1.1" 404 1280
10.9.4.140 - - [03/Jun/2022:11:02:32 +0200] "GET /_wdt/b07606 HTTP/1.1" 404 1280
10.9.4.140 - - [03/Jun/2022:11:02:33 +0200] "GET /_wdt/b07606 HTTP/1.1" 404 1280
10.9.4.140 - - [03/Jun/2022:11:02:34 +0200] "GET /_wdt/b07606 HTTP/1.1" 404 1280
10.9.4.140 - - [03/Jun/2022:11:02:35 +0200] "GET /_wdt/b07606 HTTP/1.1" 404 1280
Extract from /var/log/apache2/basecolldev-access_log file relating to a connection to the login page:
10.9.4.140 - - [03/Jun/2022:11:03:47 +0200] "GET /login HTTP/1.1" 404 1280
I see no logs in /var/log/apache2/basecolldev-error_log file.
I enclose .htaccess files contents if necessary.
File /var/www/.htaccess :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
File /var/www/BaseCollDev/public/.htaccess :
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>
You have AllowOverride None in your <Directory "/var/www">. This means your .htaccess file and therefore your mod_rewrite configuration is not being read. The simplest option is AllowOverride All (you can specify specific overrides too if you want).
You will also need to allow following symlinks (remove -FollowSymlinks, possibly add +FollowSymlinks).
I eventually managed to make it functional, by following:
File /etc/apache2/default-server.conf > changed Allow Override to All:
<Directory "/var/www">
...
AllowOverride All
...
</Directory>
File /etc/apache2/vhosts.d/basecoll-ssl.conf > removed -FollowSymlinks option:
<VirtualHost basecolldev.mydomain.fr:443>
...
<Directory /var/www/BaseCollDev/public>
...
Options -Indexes -Includes -ExecCGI
...
</Directory>
</VirtualHost>
Thanks for help that put me on the right way!
Use AliasMatch instead of Alias:
AliasMatch ^/bar/?(.*) /var/www/bar/$1

Jenkins behind apache proxy

My Jenkins is running in Kubernetes with Service type: LoadBalancer, and added below azure annotations to take internal subnet private ip address to expose service internally.
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
service.beta.kubernetes.io/azure-load-balancer-internal-subnet: subnetName
I've one ubuntu VM where Apache is installed. Created self signed certificated and terminated in apache configurations, and I'm able to access apache home page using HTTPS.
Then I've created proxy rule to Jenkins service IP address. Basically I want to access Jenkins from Apache HTTPS --> to internally HTTP traffic towards kubernetes service.
Here is Apache configurations:
xxxx#xxxx:/etc/apache2/sites-available$ ls -ltrh
total 28K
-rw-r--r-- 1 root root 1332 Jul 16 18:14 000-default.conf
-rw-r--r-- 1 root root 6338 Jul 16 18:14 default-ssl.conf
drwxr-xr-x 2 root root 4096 Dec 12 17:24 abc
-rw-r--r-- 1 root root 680 Dec 12 13:04 abc.conf
drwxr-xr-x 2 root root 4096 Dec 12 14:29 xyz
-rw-r--r-- 1 root root 1151 Dec 12 13:08 xyz.conf
cat abc/00-redirect-to-https.conf
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^jenkins$ login [L,R=302]
cat abc.conf
<VirtualHost *:80>
ServerAdmin webmaster#localhost
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/abc_error.log
CustomLog ${APACHE_LOG_DIR}/abc_access.log combined
<IfModule mod_headers.c>
RequestHeader unset X-Forwarded-For
RequestHeader unset X-Forwarded-Host
RequestHeader unset X-Forwarded-Server
RequestHeader set X-Forwarded-Proto "http"
RequestHeader set X-Forwarded-Port "80"
</IfModule>
# Apache will try to set application/json based on mime type
# This behaviour casing problems with empty json responses from spring
RemoveType json
Include sites-available/abc/*.conf
</VirtualHost>
cat xyz/00-jenkins.conf
ProxyPass /jenkins balancer://jenkins/jenkins
ProxyPassReverse /jenkins balancer://jenkins/jenkins
<Proxy balancer://jenkins>
BalancerMember http://x.x.x.x:8080 loadfactor=1 keepalive=On retry=0
ProxySet lbmethod=bytraffic
</Proxy>
cat xyz.conf
<VirtualHost *:443>
ServerAdmin webmaster#localhost
ServerName FQDN
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/xyz_error.log
CustomLog ${APACHE_LOG_DIR}/xyz_access.log combined
<IfModule mod_headers.c>
RequestHeader unset X-Forwarded-For
RequestHeader unset X-Forwarded-Host
RequestHeader unset X-Forwarded-Server
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</IfModule>
SSLEngine on
SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
SSLCertificateFile /etc/apache2/certs/ca.cert
SSLCertificateKeyFile /etc/apache2/certs/ca.key
# Apache will try to set application/json based on mime type
# This behaviour casing problems with empty json responses from spring
RemoveType json
Include sites-available/xyz/*.conf
</VirtualHost>
If I do curl -k https://localhost/jenkins from local ubuntu VM then response shows that authentication required which is fine as below, but redirecting url becomes window.location.replace('/login?from=%2F')
<html><head><meta http-equiv='refresh' content='1;url=/login?from=%2Fjenkins'/><script>window.location.replace('/login?from=%2Fjenkins');</script></head><body style='background-color:white; color:white;'>
Authentication required
<!--
You are authenticated as: anonymous
Groups that you are in:
Permission you need to have (but didn't): hudson.model.Hudson.Read
... which is implied by: hudson.security.Permission.GenericRead
... which is implied by: hudson.model.Hudson.Administer
-->
</body></html>
But with the same case, when I request from browser https://FQDN/jenkins again URL becomes https://FQDN/login?from=%2F But there browser throws URL Not found error
Not Found
The requested URL was not found on this server.
Please assist here to correct the configurations..
Thanks..
More observation from logs:
when I did curl -k https://localhost/jenkins apache access logs shows 403 which is ok because I've not passed credentials
127.0.0.1 - - [13/Dec/2019:13:37:40 +0000] "GET /jenkins HTTP/1.1" 403 3297 "-" "curl/7.58.0"
and when same tried from internet browser https://FQDN/jenkins apache logs first shows 403 which is wanted but soon after apache tries to find changed url in same VM instead of redirecting, due to which i'm not getting jenkins page.
165.225.106.137 - - [13/Dec/2019:13:38:19 +0000] "GET /jenkins HTTP/1.1" 403 3446 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
165.225.106.137 - - [13/Dec/2019:13:38:19 +0000] "GET /jenkins HTTP/1.1" 403 1564 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
165.225.106.137 - - [13/Dec/2019:13:38:20 +0000] "GET /login?from=%2F HTTP/1.1" 404 541 "https://DNSname/jenkins" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
It's working now after changing below configurations --
(1)
Set the context path by modifying the jenkins.xml configuration file and adding --prefix=/jenkins (or similar) to the <arguments> entry.
https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Apache
(2)
Initially -- RewriteRule ^jenkins$ login [L,R=302]
Now -- RewriteRule ^/jenkins(.*)$ /
(3)
Initially --
ProxyPass /jenkins balancer://jenkins/jenkins
ProxyPassReverse /jenkins balancer://jenkins/jenkins
<Proxy balancer://jenkins>
BalancerMember http://x.x.x.x:8080 loadfactor=1 keepalive=On retry=0
ProxySet lbmethod=bytraffic
</Proxy>
Now --
ProxyPass /jenkins balancer://jenkins
ProxyPassReverse /jenkins balancer://jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy balancer://jenkins>
BalancerMember http://x.x.x.x:8080/jenkins loadfactor=1 keepalive=On retry=0
ProxySet lbmethod=bytraffic
</Proxy>

WIrecloud behind apache and 500 Internal Server Error

I followed the basic installation in Wirecloud, and it works fine with the IP:Port in the browser. But when I try to put Wirecloud behind apache, it only charges some parts or makes the requests to some paths.
Here is my apache configuration:
<VirtualHost *:80>
ServerAlias myserver.com
ServerName myserver.com
<Directory /opt/wirecloud_instance/wirecloud_instance>
<Files "wsgi.py">
Require all granted
</Files>
</Directory>
### Wirecloud ###
WSGIPassAuthorization On
WSGIDaemonProcess wirecloud python-path=/opt/wirecloud_instance user=wirecloud group=wirecloud
WSGIScriptAlias / /opt/wirecloud_instance/wirecloud_instance/wsgi.py
<Location />
WSGIProcessGroup wirecloud
</Location>
Alias /static /opt/wirecloud_instance/static
<Location "/static">
SetHandler None
Require all granted
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 week"
</IfModule>
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</Location>
<Location "/static/cache">
Require all granted
<IfModule mod_expires.c>
ExpiresDefault "access plus 3 years"
</IfModule>
</Location>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass /mashup http://localhost:8087/
</VirtualHost>
Of course, Wirecloud is running in port 8087.
When I access wirecloud by the IP:Port, I can see in the log the following:
[21/Dec/2015 02:09:16] "GET / HTTP/1.1" 200 1615
[21/Dec/2015 02:09:17] "GET /api/i18n/js_catalogue?language=es&v= HTTP/1.1" 200 15778
[21/Dec/2015 02:09:17] "GET /static/cache/css/8b10fb9ee986.css HTTP/1.1" 200 131167
[21/Dec/2015 02:09:17] "GET /static/cache/js/3574aebf19e5.js HTTP/1.1" 200 839375
[21/Dec/2015 02:09:17] "GET /static/images/logos/header.png HTTP/1.1" 200 6872
[21/Dec/2015 02:09:17] "GET /api/preferences/platform HTTP/1.1" 200 2
[21/Dec/2015 02:09:17] "GET /api/workspaces HTTP/1.1" 200 2
[21/Dec/2015 02:09:17] "GET /api/context HTTP/1.1" 200 595
[21/Dec/2015 02:09:17] "GET /static/fonts/opensans-bold-webfont.woff?69f4b4a30f27 HTTP/1.1" 200 63564
[21/Dec/2015 02:09:17] "GET /static/fonts/opensans-regular-webfont.woff?69f4b4a30f27 HTTP/1.1" 200 63712
[21/Dec/2015 02:09:17] "GET /api/theme/wirecloud.defaulttheme?v=79224cfb9381f0db5a2ccf7ed2399e60978657cf HTTP/1.1" 200 1974
[21/Dec/2015 02:09:17] "GET /static/fonts/fontawesome-webfont.woff?v=3.2.1&69f4b4a30f27 HTTP/1.1" 200 43572
But if I access via apache, I only get:
[21/Dec/2015 02:09:16] "GET / HTTP/1.1" 200 1615
Thanks in advance
I found the error.
I changed the proxy configuration to:
ProxyPreserveHost On
ProxyRequests Off
ServerAlias myserver.com
ServerName myserver.com
ProxyPass / http://localhost:8087/
ProxyPassReverse / http://localhost:8087/

Apache > Setup Server Side Includes > OSX Snow Leopard > Still Not Working

I have researched this for about 2+ hours including 1+ hour of preparing this report (I must be a slow worker, considering I haven't slept in 24 hours :-P)
The virtual server side include works in Dreamweaver (except for image rendering), but does not work when I browse to the web page.
<!--#include virtual="/partialHtml/businessResult.shtml" -->
I realize that I have overridden far too many configuration settings (and if there's a simpler and more elegant way, perhaps just using a .htaccess file in ~/Sites/mysite.com/ then please also comment) ;-)
Starting from the top (1) sudo nano /etc/apache2/httpd.conf
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
(2) sudo nano /etc/apache2/extra/httpd-vhosts.conf
<VirtualHost *:80>
<Directory /Users/tidy/Sites/mysite.com>
Options +FollowSymlinks +SymLinksIfOwnerMatch +Includes
DirectoryIndex index.htm
AllowOverride All
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
DocumentRoot /Users/tidy/Sites/mysite.com
ServerName mysite.local
ErrorLog "/Users/tidy/Sites/mysite.com/log/error_log"
CustomLog "/Users/tidy/Sites/mysite.com/log/access_log" common
</VirtualHost>
(3) sudo nano /private/etc/apache2/users/tidy.conf
<Directory "/Users/tidy/Sites/">
Options +Indexes +MultiViews +FollowSymlinks +SymLinksIfOwnerMatch +Includes
AllowOverride All
Order allow,deny
Allow from all
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
(4) sudo nano ~/Sites/mysite.com/.htaccess
AddType text/html .shtml
AddHandler server-parsed .shtml
DirectoryIndex index.html index.htm
Options +Includes
XBitHack on
I also tried to use XBitHack on by doing chmod +x ~/Sites/mysite.com/partialHtml/businessResult.html and then including that file (apparently it makes .html file server side includes efficient, if you don't want to use .shtml files)
Obviously I'm doing a sudo apachectl configtest to make sure everything's okay.
I get a warning (that I've tried to get rid of) but the syntax is OK.
httpd: Could not reliably determine the server's fully qualified domain name, using complexity.local for ServerName
Syntax OK
Then a sudo apachectl restart
Here is my most recent activity in cat ~/Sites/mysite.com/log/access_log
::1 - - [08/Jan/2013:12:11:05 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:07 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:08 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:15 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:16 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:17 +0000] "OPTIONS * HTTP/1.0" 200 -
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET / HTTP/1.1" 200 3924
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET /css/site.css HTTP/1.1" 200 3077
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET /css/bootstrap.css HTTP/1.1" 200 124223
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET /img/logo.png HTTP/1.1" 200 19217
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /img/searchFormGradient.gif HTTP/1.1" 200 501
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /img/glyphicons-halflings-white.png HTTP/1.1" 200 8777
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /img/headerGradient.png HTTP/1.1" 200 216
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /js/bootstrap.min.js HTTP/1.1" 200 31596
::1 - - [08/Jan/2013:12:12:14 +0000] "OPTIONS * HTTP/1.0" 200 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET / HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /css/bootstrap.css HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /js/bootstrap.min.js HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/logo.png HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /css/site.css HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/headerGradient.png HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/glyphicons-halflings-white.png HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/searchFormGradient.gif HTTP/1.1" 304 -
The HTTP/1.1 304 code is HTTP Error 304 - Not modified which isn't an error, it's a signal from the server to the browser, that the current content hasn't changed since the last request.
As you can see from the GET requests, there's no sign of /partialHtml/businessResult.shtml
Here is my most recent activity in cat ~/Sites/mysite.com/log/error_log
[Tue Jan 08 11:24:49 2013] [error] [client 127.0.0.1] File does not exist: /Users/tidy/Sites/mysite.com/favicon.ico
And after all of that... the Server Side Include mechanism is not working :-(
Any assistance is greatly appreciated.
Tidy.
I think I have the solution to my problem.
I was having the same problem with Server Side Includes on Windows 7, because I was under the false impression that only the included file has to have an .shtml extension.
Because the line:
<!--#include file="partialHtml/businessResult.shtml" -->
Was in a file called:
index.html
The server side include module was not pre-processing the file.
After I changed index.html to index.shtml the server side include module correctly
pre-processed everything.
TL;DR - The file that includes a server side include has to have a .shtml extension.

SVN: redirect cycle detected for url [duplicate]

I want to achieve a svn-root in /var/svn and repositories(projects) in there.
I could get it to work in the browser (http://domain/url gives me "Collection of repositories") but the TortoiseClient is giving me the error mentioned in the title.
I set up a subversion on my ubuntu server by doing the following (shortened):
mkdir /var/svn
svnadmin create /var/svn/test
and my dav_svn.conf looks the following:
<Location /svn>
DAV svn
SVNParentPath /var/svn
SVNListParentPath On
</Location>
I read about sym links possibly causing the problem, so I'll attach my 000-default site as well (it's the standard btw):
<VirtualHost *:80>
ServerAdmin webmaster#localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
I tried like suggested in How do I list all repositories with the SVNParentPath directive on Apache+SVN?
but unfortunately I get another tortoise error then (while I can still see it fine in my browser)
It then gives me "The OPTIONS request returned invalid XML in the response: XML parse error at line 1: no element found"
(and HTTP OPTIONS to that url indeed gives no response body)
Does anyone know what is causing this problem?
Cheers!
Edit: This is the access.log output after trying to reach http://server/svn through tortoise
(with Location /svn)
Notice the 301 .. TortoiseSVN changes the path to 'http://server/svn' without a leading slash, tho I specified to search within 'http://server/svn / '
[10/May/2012:00:42:29 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:29 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:29 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:29 +0200] "PROPFIND /svn HTTP/1.1" 301 516 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:29 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:29 +0200] "PROPFIND /svn HTTP/1.1" 301 516 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "PROPFIND /svn HTTP/1.1" 301 516 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS /svn HTTP/1.1" 301 573 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:42:30 +0200] "OPTIONS / HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
(with Location /svn/)
[10/May/2012:00:36:57 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:36:57 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:36:57 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:36:57 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:36:58 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4 neon/0.29.6"
[10/May/2012:00:36:58 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:36:58 +0200] "OPTIONS /svn HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
[10/May/2012:00:36:58 +0200] "OPTIONS / HTTP/1.1" 200 236 "-" "SVN/1.7.4/TortoiseSVN-1.7.6.22632 neon/0.29.6"
I konw this is an old thread, however for the beneift of others that find it:
Just a guess, but does the url your browser give you have "viewvc" or some other part that is added in by the svn browser?
i.e. http://mysvn/viewvc/trunk/.....
Tortoise won't check that out since it's not an actual svn url; your svn url is probably something like
http://mysvnsvr/mysvn/trunk.....
On CentOS7, I removed the Alias directive and it works.
The TortoiseSVN Repository Browser doesn't seem to support browsing of collection of repositories.
So if you have the repositories:
/var/svn/repo1
/var/svn/repo2
/var/svn/repo3
and the dav_svn.conf
<Location /svn>
DAV svn
SVNParentPath /var/svn
SVNListParentPath on
</Location>
You can browse them with a web browser pointing at http://server/svn.
With TortoiseSVN you must specify also the name of the repository, e.g.
http://server/svn/repo1
http://server/svn/repo2
http://server/svn/repo3
Following #rdconsolo suggestion on Ubuntu 16.04, remove the Alias directive, works for me
#Alias /svn /var/lib/svn
<Location /svn>
DAV svn
SVNParentPath /var/lib/svn
SVNListParentPath On
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
I encountered the problem in a standard configuration and the reason was that I used the same directory as DocumentRoot for the webserver and as SVNPath in the websvn/davsvn config.
For details see also What is the cause of "svn: E195019: Redirect cycle detected for URL"?
The problem for me was that I had a .htaccess RewriteRule in my document root, asking to add a trailing / to every URL not having one.
Because of that, the SVN clients, trying to call URLs WITHOUT a trailing / such as "https://site/repos/project" got reidrected by apache to "https://site/repos/project/", so the SVN client tries to go to "https://site/repos/project" again, and so on.
SOLUTION: Do not have any rule that add a trailing / that could affect your SVN urls.
Adding the:
SVNListParentPath on
line alone solved this issue for me.
I had the same problem but not for multiple repositories just tags,branches,etc within a repository. Removing the Alias tag in the conf file fixed this. I am running Centos 7 with SVN 1.8 and Tortoise 1.9.