Symbolic link not allowed or link target not accessible: /path/httpdocs/news.html
There are a few reasons that can cause this message and this is for people who have ruled out the basics, eg. your symlinks are enabled and the right permissions are applied (but read on to learn about ownership requirements above the directory in question).
So there are a few key things here that cause Apache not to follow symlinks:........
cat .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
I keep reading there is a "# BEGIN WordPress" and a "# END WordPress" in the wordpress htaccess above but there is clearly not.
Even more strange is that my permissions are just 444 (read only).
so i changed it........
It is really simple using .htaccess with mod_rewrite.
Here is all you need:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]
Another more graceful way is to use the %{SERVER_NAME}variable to make it dynamic. Just be careful that the server name will always match what you expect. (eg. if you are doing load balancing or clustering what if the server name may be somethi........
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.15 (CentOS) Server at testdomain.com Port 80........
So I have a domain "testdomain.com".
Inside test domain.com's root is the following .htaccess:
Options +FollowSymLinks -Indexes
ErrorDocument 403 /launch/index.html
Order Deny,Allow
Deny From All
Allow From 192.168.1.2
When you visit anything other than root things work fine. Eg. if you visit http://testdomain.com/somedirfile.html
It will show the right error in /launch/........
order deny,allow
Deny From All
Allow From 8.8.8.8
A simple and quick way to improve security by only allowing specific IPs to your web application.
In this case the above allows only the IP 8.8.8.8 to access things and everything else is denied.........
This just simply outputs what you need a username and password that can be used to authenticate from .htaccess
htpasswd -nb user password
user:Gnb6uE9Lp4gt2
If you want to write it straight to a file
htpasswd -cb /tmp/somefile.pw user password
How To Use This In .htaccess
AuthUserFile /tmp/somefile.pw
AuthName GetLost!!
AuthType B........
Add this to the .htaccess file
#right/working:
AddType application/x-httpd-php .html .htm
#wrong (won't work in many cases):
AddHandler application/x-httpd-php5 .html .htm........
The only real way us to do the following in the root of your site's .htaccess
RewriteRule ^somedirectory-not-to-inherit/.*$ - [L]........
There was only one solution here and it was the following:
edit /etc/httpd/conf/httpd.conf
Comment the lines for the Mime Magic Module:
# MIMEMagicFile /usr/share/magic.mime
# MIMEMagicFile conf/magic
*Don't forget to restart Apache and clear your browser cache twice
I was using DefaultType and ForceType a........
There are a few ways of doing this and all basically involve using the reverse proxy or "ProxyPass" feature of Apache to accomplish it.
1.) Create a normal vhost and simply symlink the root directory of the site you want to mirror.
Eg. originalsite.com and newsite.com
/vhosts/originalsite.com/httpdocs
You would symlink like this:
ln -s /vhosts/originalsite.com/httpdocs vhosts/originalsite.com/........
The first thing to diagnose is what is actually in the database (use PHPMyAdmin or CLI).
You will of course either find that the backslash is either in the database or not.
If the backslash is in the database you probably have magic quotes gpc/runtime on and/or are calling the "addslashes()" function which does this.
If you are escaping your data with mysql_real_escape_string() then think again, you probably have magic quotes gpc enabled either in php.ini or........
The best way is as below in .htaccess using modrewrite, any request that is not SSL will be redirected to https://domain.com and the exact same URL
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]........
It is just the readlink command with the -f switch and it will display the full path, very handy to save time when you want to copy and paste the location of a file or script etc..
readlink -f updatehtaccess.sh
/var/lib/updatehtaccess.sh
........
This example is based on Wordpress but applies to any other query string eg.
http://wordpress.com/?p=55
If you want to manually redirect that p=55 to /some/other/url how do you do it?
RewriteCond %{QUERY_STRING} p=55 [NC]
RewriteRule .* /new-url/? [R=301,L]
You can change the p=55 to whatever your query string looks like.
Remember to keep the "?" at the end of the new URLunless you really want the query s........
I struggled with this for awhile because sometimes you have rewritten URLs that you want to pass a query string but most of the info and examples do not support this.
Take a typical example like this:
RewriteRule ^(.*)-(.*)-(.*) /?module=$3&id=$2
You need to add the QSA flag to make it work like below:
RewriteRule ^(.*)-(.*)-(.*) /?module=$3&id=$2 [QSA]
The QSA preserves the original query string but also appends it wit........
Add this to a new ".htaccess" file inside the directory where the .html resides:
AddType application/x-httpd-php .php .html........
order deny,allow
deny from all
allow from your.ip.here
........
tar -czf yourfile.tar.gz .
The . dot is the crucial part, normally many will use * and that will exclude hidden files by default which is very undesirable as many hidden files are important such as .htaccess and conf files in your home directory etc.. It seems the default behavior of tar should be the opposite but these are all very old tools.........
Add this to htaccess:
Options +Indexes
After that people will be able to browse files and directories of your site.........
Istruggled with this for awhile because the normal setup won't work if modrewrite is being used:
ORDER ALLOW, DENY
So the solution is something like this:
order allow,deny
deny from 12.43.12.0/24
allow from all
........
htpasswd -b -c filename username "password"
-b = take the password that we specify in the command (don't prompt for it)
-c = create the filename
username=username
password=password (I use quotes because it breaks if you use special characters)........
The Cause
Basically it's usually because your Cpanel has new IPs and the old IPs it knows are no longer available/working/valid.
The solution is to change the site's IP but you may run into issues for various reasons. Here is what I encountered below.
It redirects there even though public_html is empty and doesn't have any index or htaccess redirect.
---
This issue happened after a CPanel migration, the site is bein........
mod_status is a great way to track down the source of high CPU usage and to find what vhost/script is the cause of it.
It gives you a live view of bandwith usage, CPU usage, and memory usage broken down by domain/vhost and script/URI.
Enable mod_status
vi /etc/httpd/conf/httpd.conf
ExtendedStatus On
SetHandler server-status
Order Deny,Allow
Deny from all
All........
I was getting frustrated with trying to write a simple URL like this:
/example-withdash
I used the htaccess code like this:
Rewriterule ^example-withdash$ / [R=301]
I also tried escaping the dash which I thought should have treated it as a literal but that didn't work either:
Rewriterule ^example-withdash$ / [R=301]
But it wouldn't work, apparently the "-" dash means don't substitute,........
drup 6.2 install
$cd drupgoodinst3883/
[ drupgoodinst3883]$ ls
CHANGELOG.txt cron.php index.php INSTALL.pgsql.txt INSTALL.txt MAINTAINERS.txt modules robots.txt sites update.php xmlrpc.php
COPYRIGHT.txt includes INSTALL.mysql.txt install.php LICENSE.txt misc&........
Forbidden
You don't have permission to access / on this server.
[Sun Jan 23 15:28:12 2011] [crit] [client 96.44.31.12] (13)Permission denied: /www/vhosts/domain.com/httpdocs/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
Solution
I've done a chmod 755 .htaccess and index.php and restarted Apache
That wasn't the only issue, the issue was the httpdocs direc........
tar include hidden files such as .htaccess
just add . to the path eg.
tar -czvf tarfile.tar.gz /home/directory/.........
I couldn't figure out why this wouldn't work, a test script in the root of my htdocs folder worked fine.
Within some subdirectories the same code would produce different base64 results but I didn't know hwy.
Archive: /tmp/archive.zip
Zip file size: 6888 bytes, number of entries: 92
error [/tmp/archive.zip]: missing 242827681 bytes in zipfile
(attempting to process anyway)
error [/tmp/archive.zip]: attempt........
Comment lines in #htaccessYou can create a hash '#' at the beginning of the line:
eg:
[quote:2d67449f2c]#[/quote:2d67449f2c]........
Put what you see below into your .htaccessand it will enable errors and notices. (change on to off and 1 to 0 to disable though)
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
Now you'll be able to see errors and notices but this should really only be used for debugging purposes and only temporarily as it can be a security issue since errors can reveal information you wouldn't want hacker........
RemoveHandler .html .htmAddType application/x-httpd-php .php .htm .html Just add the above into the .htaccess file for your website. Also remember that you need to be allowed to override the Apache and this should go into the vhost for your site as shown below:
# you need the AllowOverride otherwise .htaccess directives will be ignoredOptions FollowSymLinksAllowO........
This is something that happens a lot and it is very dirty, as you probably know each site is hosted on a certain IP address. Sometimes a domain is hosted by a single IP address and the IP address defaults to this very same domain.
This means that if someone buys domain abcd.com and enters your IP address (the one of your website) as the A record, your content will show up on their domain as if it was their own.
There is an easy way to prevent this by using .htacces........
I was getting very frustrated one day wondering why it appeared my .htaccess file was being ignored and not processed by Apache. No matter what I did it was obvious that Apache didn't care about my .htaccess file. Then I realized that the default settings must be in effect, which is that my vhost didn't explicitly allow me to override the default settings.
This usually comes down to your vhost settings. Make sure you have an entry like this in your Apache vhost settings in........