# Apache directives... wollen nicht so wie ich möchte :-/



## olli (18. Apr. 2008)

hallo,
ich habe vor kurzem ISPconfig aufgesetzt und bin wirklich beeindruckt von dem leistungsumfang.

alles funktioniert toll, bis auf das richtige setzen mod-rewrite regeln bzw. von apache diretives im ISPconfig. vielleicht mag' ja jemand von euch einen denkanstoß geben?

folgende situation:
im verzeichnis /srv/www/web6/web

existiert ein php script. dieses script benötigt folgende .htaccess im document-root:

```
# Disable folder Indexing
Options -Indexes

# Some of the following options are commented, to prevent "500" server errors, in some environments.
<IfModule mod_php4.c> 
# Disable zlib compression, to avoid issues with PHP's gunzip. COMMENT the following line, IF YOU GET a "500" server error!
php_flag zlib.output_compression Off
# Disable register globals, just in case. COMMENT the following line, IF YOU GET a "500" server error!
php_flag register_globals off
# Disable PHP errors, in the production environment
# php_flag display_errors off
# Disable PHP "Magic Quotes". We use mySQL filtering for inputted data and "Magic Quotes" could facilitate SQL injections
# php_flag magic_quotes_gpc off
</IfModule>

# The following protects .flv files from direct download, when using the "php-streaming" option:
<IfModule mod_php4.c>
# Uncomment the following line, to use "php-streaming"
# AddType application/x-httpd-php .flv
</IfModule>

# Prevent viewing of htaccess and other .ht files
<Files ~ "^\.ht">
order allow,deny
satisfy all
</Files>

# Deny most common except .php (Also protects your .tpl template files)
<FilesMatch "\.(db|inc|tpl|tmpl|h|ihtml|sql|ini|configuration|config|class|bin|spd|theme|module|cfg|cpl|tmp|log|err)$">
order allow,deny
satisfy all
</FilesMatch>

# SEO (Search Engine Optimization), that is search engine friendly URLs
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^rss/new /rss.php?type=new[L]
RewriteRule ^rss/comments /rss.php?type=comments[L]
RewriteRule ^rss/views /rss.php?type=views[L]
RewriteRule ^([-_~*a-zA-Z0-9]+)(\/)?$ groups_home.php?urlkey=$1
RewriteRule ^([-_~*a-zA-Z0-9\%\@\!\#\$\^\&\*]+)(.html+)(\/)?$ uprofile.php?uname=$1
RewriteRule ^([-_~*a-zA-Z0-9]+)(.video+)(\/)?$ view_video.php?viewkey=$1
RewriteRule ^([-_~*a-zA-Z0-9]+)(.srt+)(\/)?$ subtitles.php?video=$1
RewriteRule uploads/flvideo/^([-_~*a-zA-Z0-9]+)(.srt+)(\/)?$ subtitles.php?video=$1
</IfModule>

# Define the error documents, for the most basic server errors.
# REPLACE all instances of "YOUR_DOMAIN.COM" with YOUR DOMAIN NAME!
ErrorDocument 400 http://domain-name/error_handler.php?erid=400
ErrorDocument 401 http://domain-name/error_handler.php?errid=401
ErrorDocument 403 http://domain-name/error_handler.php?errid=403
ErrorDocument 404 http://domain-name/error_handler.php?errid=404
ErrorDocument 500 http://domain-name/error_500.html

# Force caching of some common files for some time in the browser's cache, to save bandwidth.
# "Mod_expires" needs to be installed in your Apache server, to use this feature.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/jpg A2592000
ExpiresByType text/plain A2592000
ExpiresByType application/pdf A2592000
ExpiresByType text/html A2592000
ExpiresByType text/javascript A2592000
</IfModule>



# And again the same, using Apache's "mod_headers", if it's installed.
# Caching of common files - ENABLED
<IfModule mod_headers.c>
<FilesMatch "\.(ico|pdf|js|css|gif|png|jpg|jpeg|txt|html|htm)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# Remove comments, to disable video caching to the user's browser
# <FilesMatch "\.(flv|wmv|avi|mpg|3gp|rm|mpeg|mp4|qt|mov|divx|xvid|wmv|asf|dat|xml)$">
# Header set Cache-Control "max-age=0, public"
# </FilesMatch>
</IfModule>

<IfModule mod_security.c>
# Here, you can turn on Apache's "mod_security" scanning engine, if the module is installed.
   SecFilterEngine Off
# Turn on the security scan engine for POST elements, at your own rirk!
# Make sure to use a proper filtering set!
   SecFilterScanPOST Off
</IfModule>
```
zudem habe ich über ISPconfig für die domain folgende apache direktive gesetzt:

```
<Directory /srv/www/web6/web>
   Options +FollowSymLinks
   AllowOverride All
</Directory>
```
leider bekomme ich so ein 404, wenn ich z.b. weitere unterordner wie
/document_root/*admin* anspringen möchte.

ich gebe offen zu, dass ich mich mit mod_rewrite leider noch nicht auskenne. daher meine frage an euch: wie muß' ich die /.htaccess anpassen, damit der ordner /admin angesprungen werden kann ohne 404? 

wäre super, wenn ihr mir hilfestellung geben könntet, worauf ich achten muß.

viele grüße


----------



## Till (19. Apr. 2008)

Welche Fehlermeldungen erhältst Du im error.log der Webseite?


Deine Vorgehensweise ist soweit ok und es sollte funktioneueren, wenn der Inhalt der .htaccess Datei in Ordnung ist. was Du alternativ mal versuchen kannst, ist dass Du die .htaccess Datei löschst und stattdessen deren kompletten Inhalt in das apache Direktiven Feld kopierst.


----------



## olli (21. Apr. 2008)

hallo,
ja ich habe versucht die datei direkt in die apache direktiven im webpanel zu kopieren. leider brachte das keine verbesserung.

da ich die .htaccess datei nur explizit für ein verzeichnis abschalten muß', habe ich mich einfach mit einem "RewriteEngine off" im entsprechenden verzeichnis beholfen.

ist vielleicht nicht die eleganteste lösung, aber es führt zu dem gewünschten ergebnis. 

danke für deine hilfestellung!

viele grüße


----------

