mod_rewrite i .htaccess

Generell diskusjon om Linux og fri programvare, ikke et support forum.

mod_rewrite i .htaccess

Innleggav LuiGi » fre 27.11.2009 23:51

Hei, jeg driver og skal sette opp elgg.org , og jeg får fram feil mld :
Kode: Merk alt
The server can not find the requested page:
cpanel1.voipworks.no/****/action/systemsettings/install (port 80)


Det står ifølge elgg.org , at jeg må legge inn modulen mod_rewrite , men finnes det en metode for å overskrive dette i .htaccess ?

denne har har jeg prøvet :

Kode: Merk alt
# Elgg htaccess directives
# Copyright Curverider Ltd 2008
# License http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
# Link http://elgg.org/

<IfModule !mod_rewrite.c>
    # ugly ugly hack to detect missing mod_rewrite
    # RedirectMatch must be to an absolute destination, so forces 500 error...
    ErrorDocument 500 "Elgg error: Apache does not have mod_rewrite loaded. Please check your Apache setup."
    RedirectMatch 302 .* index.php
</IfModule>

<Files "htaccess-dist">
    order allow,deny
    deny from all
</Files>

# Don't listing directory
#Options -Indexes

# Follow symbolic links
#Options +FollowSymLinks

# Default handler
#DirectoryIndex index.php

# Turn on expiry
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 10 years"
</IfModule>

# php 4, apache 1.x
<IfModule mod_php4.c>
    ErrorDocument 500 "Elgg error: Elgg does not support PHP 4."
    RedirectMatch 302 .* index.php
</IfModule>

# php 4, apache 2
<IfModule sapi_apache2.c>
    ErrorDocument 500 "Elgg error: Elgg does not support PHP 4."
    RedirectMatch 302 .* index.php
</IfModule>

# php 5, apache 1 and 2
<IfModule mod_php5.c>
    # default memory limit to 64Mb
    php_value memory_limit 64M
    # to make sure register global is off
    php_value register_globals 0
    # max post size to 8Mb
    php_value post_max_size 8388608
    # upload size limit to 5Mb   
    php_value upload_max_filesize 5242880
    # hide errors, enable only if debug enabled
    php_value display_errors 0
</IfModule>

# Turn on mod_gzip if available
<IfModule mod_gzip.c>
    mod_gzip_on yes
    mod_gzip_dechunk yes
    mod_gzip_keep_workfiles No
    mod_gzip_minimum_file_size 1000
    mod_gzip_maximum_file_size 1000000
    mod_gzip_maximum_inmem_size 1000000
    mod_gzip_item_include mime ^text/.*
    mod_gzip_item_include mime ^application/javascript$
    mod_gzip_item_include mime ^application/x-javascript$
    # Exclude old browsers and images since IE has trouble with this
    mod_gzip_item_exclude reqheader "User-Agent: .*Mozilla/4\..*\["
    mod_gzip_item_exclude mime ^image/.*
</IfModule>

# Apache2 deflate support if available
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

# Configure ETags
<FilesMatch "\.(jpg|jpeg|gif|png|mp3|flv|mov|avi|3pg|html|htm|swf)$">
    FileETag MTime Size
</FilesMatch>

<IfModule mod_rewrite.c>

RewriteEngine on

# If Elgg is in a subdirectory on your site, you might need to add a RewriteBase line
# containing the path from your site root to elgg's root. e.g. If your site is
# http://example.com/ and Elgg is in http://example.com/sites/elgg/, you might need
#
RewriteBase /home2/kaktus/public_html/
#
# here, only without the # in front.
#
# If you're not running Elgg in a subdirectory on your site, but still getting lots
# of 404 errors beyond the front page, you could instead try:
#
#RewriteBase /

RewriteRule ^action\/([A-Za-z\_\-\/]+)$ engine/handlers/action_handler.php?action=$1
RewriteRule ^actions\/([A-Za-z\_\-\/]+)$ engine/handlers/action_handler.php?action=$1

RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)$ services/export/handler.php?view=$1&guid=$2
RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/$ services/export/handler.php?view=$1&guid=$2
RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ services/export/handler.php?view=$1&guid=$2&type=$3&idname=$4

RewriteRule ^\_css\/css\.css$ _css/css.php

RewriteRule ^pg\/([A-Za-z\_\-]+)\/(.*)$ engine/handlers/pagehandler.php?handler=$1&page=$2
RewriteRule ^pg\/([A-Za-z\_\-]+)$ engine/handlers/pagehandler.php?handler=$1

RewriteRule xml-rpc.php engine/handlers/xml-rpc_handler.php
RewriteRule mt/mt-xmlrpc.cgi engine/handlers/xml-rpc_handler.php

</IfModule>

Brukerens avatar
medlem i 235 måneder
 

Re: mod_rewrite i .htaccess

Innleggav ak » lør 28.11.2009 12:55

Sannsynligvis har du mod_rewrite allerede, de fleste webhoster har den.

Denne kodesnutten forteller hvilke moduler som er lastet
Kode: Merk alt
<?php
print_r(apache_get_modules());
?>


Jeg tror du har misforstått
Kode: Merk alt
RewriteBase /home2/kaktus/public_html/


mod_rewrite jobber med forespørslene som kommer fra nettleseren, dvs. den bryr seg aldri hvor på disken filene ligger. Hvis programmet ligger rett i public_html så skal base være "/" , hvis det ligger i public_html/test/ så blir det "/test/".

Det du kan prøve er å fjerne alle ifModule greiene, da vil nettleseren bare vise "500 internal error" og så står det mere detaljert i Apaches error log.

Administrator
Brukerens avatar
medlem i 236 måneder
 

Re: mod_rewrite i .htaccess

Innleggav LuiGi » lør 28.11.2009 15:34

Kode: Merk alt
Array ( [0] => core [1] => mod_access [2] => mod_auth [3] => mod_include [4] => mod_log_config [5] => mod_logio [6] => mod_env [7] => mod_expires [8] => mod_headers [9] => mod_setenvif [10] => mod_proxy [11] => proxy_connect [12] => proxy_ftp [13] => proxy_http [14] => mod_ssl [15] => prefork [16] => http_core [17] => mod_mime [18] => mod_status [19] => mod_autoindex [20] => mod_asis [21] => mod_info [22] => mod_suexec [23] => mod_cgi [24] => mod_negotiation [25] => mod_dir [26] => mod_imap [27] => mod_actions [28] => mod_userdir [29] => mod_alias [30] => mod_rewrite [31] => mod_so [32] => mod_auth_passthrough [33] => mod_bwlimited [34] => mod_fpcgid [35] => mod_php5 )


Jeg endret til fra
Kode: Merk alt
RewriteBase /home2/kaktus/public_html/
til
Kode: Merk alt
RewriteBase /
, og for fortsatt samme feil mld..
Da en gang jeg gjorde dette på min private pc, fikk jeg dette til ved å gjøre det jeg har skrevet opp i bloggen min : http://trodal.net/?p=157

Brukerens avatar
medlem i 235 måneder
 

Re: mod_rewrite i .htaccess

Innleggav ak » lør 28.11.2009 15:38

Det du beskriver i bloggen din er nødvendig på Debian kloner, fordi sikkerhetsinnstillingene i utgangspunktet er for strenge. Men det burde ikke være nødvendig på en webhost.

Du får prøve å lage noen enkle rewrite regler og følge med i access loggen, der finner du resultatet etter at mod_rewrite har skrevet om adressen. Vanskelig å hjelpe deg uten å ha adressen og kunne se hvor du lagt .htaccess osv.

Administrator
Brukerens avatar
medlem i 236 måneder
 

Re: mod_rewrite i .htaccess

Innleggav LuiGi » søn 29.11.2009 22:56

Jeg får høre da med de som jeg leier hoss, for her er jeg veldig usikker på hva jeg kan gjøre.

Brukerens avatar
medlem i 235 måneder
 

Re: mod_rewrite i .htaccess

Innleggav LuiGi » tir 01.12.2009 1:54

Men AK : om jeg ikke tar feil igjen, så er mod_rewrite aktiv i apache?

Brukerens avatar
medlem i 235 måneder
 

Re: mod_rewrite i .htaccess

Innleggav ak » tir 01.12.2009 1:58

Den vises ihvertfall i PHP utskriften ovenfor, og hvis du fjerner ifmodule setningene saa vil du kun faa "500 Internal Server Error" dersom .htaccess filen inneholder ting som brukes av mod_rewrite, slik som RewriteRule.

Tar det for gitt at hosten din stoetter .htaccess.

Administrator
Brukerens avatar
medlem i 236 måneder
 

Re: mod_rewrite i .htaccess

Innleggav LuiGi » tir 01.12.2009 2:03

Kode: Merk alt
RewriteEngine on

RewriteBase /

RewriteRule ^action\/([A-Za-z\_\-\/]+)$ engine/handlers/action_handler.php?action=$1
RewriteRule ^actions\/([A-Za-z\_\-\/]+)$ engine/handlers/action_handler.php?action=$1

RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)$ services/export/handler.php?view=$1&guid=$2
RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/$ services/export/handler.php?view=$1&guid=$2
RewriteRule ^export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ services/export/handler.php?view=$1&guid=$2&type=$3&idname=$4

RewriteRule ^\_css\/css\.css$ _css/css.php

RewriteRule ^pg\/([A-Za-z\_\-]+)\/(.*)$ engine/handlers/pagehandler.php?handler=$1&page=$2
RewriteRule ^pg\/([A-Za-z\_\-]+)$ engine/handlers/pagehandler.php?handler=$1

RewriteRule xml-rpc.php engine/handlers/xml-rpc_handler.php
RewriteRule mt/mt-xmlrpc.cgi engine/handlers/xml-rpc_handler.php


Legger jeg bare denne i filen, så får jeg samme error ja..

Kode: Merk alt
The server can not find the requested page:

    cpanel1.voipworks.no/~kaktus/action/systemsettings/install (port 80)
 

Brukerens avatar
medlem i 235 måneder
 


Returner til Generell diskusjon



Hvem er i Forumene

Registrerte brukere: Google [Bot]