Avatar billede jily Nybegynder
02. august 2010 - 23:41 Der er 6 kommentarer og
1 løsning

.htaccess Redirect 301 - virker, men gentager url'en

Ny hjemmeside, der ligger på ny platform på samme domæne som tidligere hjemmeside.

Derfor ønskes det at laves 301 redirect på de sider der er mest besøgte og hyppigst linket til.

(Website bliver hostet på linux server)
Dette er forsøgt gjort i .htaccess fil på følgende måde:

redirect 301 /Skraldespande/imagepage4.html http://www.sammedomane.dk/skraldespand-vippelag.html

Dette giver imidlertid et resultat som er som følger:

http://www.sammedomæne.dk/skraldespand-vippelag.html?q=Skraldespande/imagepage4.html

Det vil sige at den redirecter rigtigt nok, men ligger den gamle url på til sidst, med ?q foran.... og det skal den jo helst ikke. 

Er der  nogen der kan fortælle mig hvordan jeg skal skrive 301 redirect i min .htacess fil for at dette ikke sker, og at den redirecter som ønsket?

På forhånd tusind mange tak!
Avatar billede erikjacobsen Ekspert
03. august 2010 - 00:05 #1
Det er vel ikke den eneste regel i din .htaccess - må vi se dem alle?
Avatar billede jily Nybegynder
03. august 2010 - 00:24 #2
Selvfølgelig må i det! Sitet er lavet i ModX som har følgende regler for at lave url'er om:




# For full documentation and other suggested options, please see
# http://svn.modxcms.com/docs/display/MODx096/Friendly+URL+Solutions
# including for unexpected logouts in multi-server/cloud environments
# and especially for the first three commented out rules

#php_flag register_globals Off
#AddDefaultCharset utf-8
#php_value date.timezone Europe/Moscow

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

# Fix Apache internal dummy connections from breaking [(site_url)] cache
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

# Rewrite domain.com -> www.carbi.dk -- used with SEO Strict URLs plugin
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^www\.carbi\.dk [NC]
#RewriteRule (.*) http://www.carbi.dk/$1 [R=301,L]

# Exclude /assets and /manager directories and images from rewrite rules
RewriteRule ^(manager|assets)/*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]

# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

# Reduce server overhead by enabling output compression if supported.
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
Avatar billede jily Nybegynder
03. august 2010 - 00:26 #3
Og dernæst en stribe 301 redirects, som jo selvsagt ikke virker!!! Glæder mig til at høre fra dig Erik!
Avatar billede erikjacobsen Ekspert
03. august 2010 - 11:46 #4
Så er det jo nok fordi din URL matcher en af de andre regler, før den når ned til dine 301-ere.

Hvad med at prøve at flytte dem op først, som


  redirect 301 /Skraldespande/imagepage4.html http://www.sammedomane.dk/skraldespand-vippelag.html [L]

hvor [L] betyder, at den ikke skal lave mere (Last).
Avatar billede jily Nybegynder
03. august 2010 - 12:32 #5
Ja der var vist flere af reglerne der overskrev hinanden....

Jeg har nu lavet koden således, og det virker efter hensigten!! 

# MODx supports Friendly URLs via this .htaccess file. You must serve web
    # pages via Apache with mod_rewrite to use this functionality, and you must
    # change the file name from ht.access to .htaccess.
    #
    # Make sure RewriteBase points to the directory where you installed MODx.
    # E.g., "/modx" if your installation is in a "modx" subdirectory. If you have
    # problems with your .htaccess working at all, try un-commenting the first
    # line above the "RewriteEngine On" directive.
    #
    # You may choose to make your URLs non-case-sensitive by adding a NC directive
    # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]

    #Options +FollowSymlinks
    # RewriteEngine On
    # RewriteBase /



    #Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
    #RewriteCond %{HTTP_HOST} .
    #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com
    #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
    #
    # or for the opposite domain.com -> www.domain.com use the following
    # >>> DO NOT USE BOTH THE ABOVE AND BELOW <<<
    #
    # RewriteCond %{HTTP_HOST} .
    # RewriteCond %{HTTP_HOST} !^www\.carbi\.dk
    # RewriteRule (.*) http://www.carbi.dk/$1 [R=301,L]



    # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
    # https://www.domain.com when your cert only allows https://secure.domain.com
    #RewriteCond %{SERVER_PORT} !^443
    #RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]



    # The Friendly URLs part
    # RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]


    # The Friendly URLs part with regard to Subdirectories
    # If you have your MODx installed in a subfolder of your web space
    # (such as /modx/) then you need to use the following line:
    # RewriteRule ^(.*)$ /~mm/index.php?q=$1 [L,QSA,NC]

    # This might work
    RedirectMatch 301 ^/~mm/$ http://www.carbi.dk/



    # Make sure .htc files are served with the proper MIME type, which is critical # for XP SP2. Un-comment if your host allows # htaccess MIME type overrides.

    #AddType text/x-component .htc



    # If your server is not already configured as such, the following directive
    # should be uncommented in order to set PHP's register_globals option to OFF.
    # This closes a major security hole that is abused by most XSS (cross-site
    # scripting) attacks. For more information: http://php.net/register_globals
    #
    # To verify that this option has been set to OFF, open the Manager and choose
    # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
    # for "register_globals". The Local Value should be OFF. If the Master Value
    # is OFF then you do not need this directive here.
    #
    # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
    #
    # Your server does not allow PHP directives to be set via .htaccess. In that
    # case you must make this change in your php.ini file instead. If you are
    # using a commercial web host, contact the administrators for assistance in
    # doing this. Not all servers allow local php.ini files, and they should
    # include all PHP configurations (not just this one), or you will effectively
    # reset everything to PHP defaults. Consult www.php.net for more detailed
    # information about setting PHP directives.

    #php_flag register_globals Off



    # For servers that support output compression, you should pick up a bit of
    # speed but un-commenting the following lines.

    #php_flag zlib.output_compression On
    #php_value zlib.output_compression_level 5



    # The following directives stop screen flicker in IE on CSS rollovers. If
    # needed, un-comment the following rules. When they're in place, you may have
    # to do a force-refresh in order to see changes in your designs.

    #ExpiresActive On
    #ExpiresByType image/gif A2592000
    #ExpiresByType image/jpeg A2592000
    #ExpiresByType image/png A2592000
    #BrowserMatch "MSIE" brokenvary=1
    #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
    #BrowserMatch "Opera" !brokenvary
    #SetEnvIf brokenvary 1 force-no-vary

    RedirectMatch 301 ^/~mm/$ http://www.carbi.dk/
    Options +FollowSymLinks

    RewriteEngine On

    RewriteRule ^H_nddesinfektion/index\.html$ http://www.carbi.dk/haanddesinfektion.html [R=301,L]
    RewriteRule ^Armaturer/index\.html$ http://www.carbi.dk/advarselsskilte.html [R=301,L]
Avatar billede jily Nybegynder
03. august 2010 - 12:34 #6
Ups det var den gamle kode... her kommer den nye som virker skulle andre få brug for noget lignende!

    # MODx supports Friendly URLs via this .htaccess file. You must serve web
    # pages via Apache with mod_rewrite to use this functionality, and you must
    # change the file name from ht.access to .htaccess.
    #
    # Make sure RewriteBase points to the directory where you installed MODx.
    # E.g., "/modx" if your installation is in a "modx" subdirectory. If you have
    # problems with your .htaccess working at all, try un-commenting the first
    # line above the "RewriteEngine On" directive.
    #
    # You may choose to make your URLs non-case-sensitive by adding a NC directive
    # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]

    #Options +FollowSymlinks
    # RewriteEngine On
    # RewriteBase /



    #Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
    #RewriteCond %{HTTP_HOST} .
    #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com
    #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
    #
    # or for the opposite domain.com -> www.domain.com use the following
    # >>> DO NOT USE BOTH THE ABOVE AND BELOW <<<
    #
    # RewriteCond %{HTTP_HOST} .
    # RewriteCond %{HTTP_HOST} !^www\.carbi\.dk
    # RewriteRule (.*) http://www.carbi.dk/$1 [R=301,L]



    # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
    # https://www.domain.com when your cert only allows https://secure.domain.com
    #RewriteCond %{SERVER_PORT} !^443
    #RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]



    # The Friendly URLs part
    # RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]


    # The Friendly URLs part with regard to Subdirectories
    # If you have your MODx installed in a subfolder of your web space
    # (such as /modx/) then you need to use the following line:
    # RewriteRule ^(.*)$ /~mm/index.php?q=$1 [L,QSA,NC]

    # This might work
    RedirectMatch 301 ^/~mm/$ http://www.carbi.dk/



    # Make sure .htc files are served with the proper MIME type, which is critical # for XP SP2. Un-comment if your host allows # htaccess MIME type overrides.

    #AddType text/x-component .htc



    # If your server is not already configured as such, the following directive
    # should be uncommented in order to set PHP's register_globals option to OFF.
    # This closes a major security hole that is abused by most XSS (cross-site
    # scripting) attacks. For more information: http://php.net/register_globals
    #
    # To verify that this option has been set to OFF, open the Manager and choose
    # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
    # for "register_globals". The Local Value should be OFF. If the Master Value
    # is OFF then you do not need this directive here.
    #
    # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
    #
    # Your server does not allow PHP directives to be set via .htaccess. In that
    # case you must make this change in your php.ini file instead. If you are
    # using a commercial web host, contact the administrators for assistance in
    # doing this. Not all servers allow local php.ini files, and they should
    # include all PHP configurations (not just this one), or you will effectively
    # reset everything to PHP defaults. Consult www.php.net for more detailed
    # information about setting PHP directives.

    #php_flag register_globals Off



    # For servers that support output compression, you should pick up a bit of
    # speed but un-commenting the following lines.

    #php_flag zlib.output_compression On
    #php_value zlib.output_compression_level 5



    # The following directives stop screen flicker in IE on CSS rollovers. If
    # needed, un-comment the following rules. When they're in place, you may have
    # to do a force-refresh in order to see changes in your designs.

    #ExpiresActive On
    #ExpiresByType image/gif A2592000
    #ExpiresByType image/jpeg A2592000
    #ExpiresByType image/png A2592000
    #BrowserMatch "MSIE" brokenvary=1
    #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
    #BrowserMatch "Opera" !brokenvary
    #SetEnvIf brokenvary 1 force-no-vary

    RedirectMatch 301 ^/~mm/$ http://www.carbi.dk/
    Options +FollowSymLinks

    RewriteEngine On

    RewriteRule ^H_nddesinfektion/index\.html$ http://www.carbi.dk/haanddesinfektion.html [R=301,L]
    RewriteRule ^Armaturer/index\.html$ http://www.carbi.dk/advarselsskilte.html [R=301,L]
    RewriteRule ^Advarselsskilte/index\.html$ http://www.carbi.dk/armaturer-beroringsfrie.html [R=301,L]
    RewriteRule ^Askeb_ger_fritst_ende/index\.html$ http://www.carbi.dk/askebaeger-fritstaaende.html [R=301,L]
    RewriteRule ^Askeb_ger_oph_ngning/index\.html$ http://www.carbi.dk/askebaeger-ophaeng.html [R=301,L]
    RewriteRule ^B_rneudstyr/index\.html$ http://www.carbi.dk/puslebord-vaeg.html [R=301,L]
    RewriteRule ^B_rneudstyr/imagepage2\.html$ http://www.carbi.dk/puslebord-vaghangt.html [R=301,L]
    RewriteRule ^B_rneudstyr/imagepage3\.html$ http://www.carbi.dk/puslebord-vaegmontering.html [R=301,L]
    RewriteRule ^H_ndt_rrer/index\.html$ http://www.carbi.dk/haandtorrer.html [R=301,L]
    RewriteRule ^Papirdispensere_(1)/index\.html$ http://www.carbi.dk/papirdispensere.html [R=301,L]
    RewriteRule ^Papirdispensere/index\.html$ http://www.carbi.dk/papirdispensere.html [R=301,L]
    RewriteRule ^Rygekabiner/index\.html$ http://www.carbi.dk/rygekabiner.html [R=301,L]
    RewriteRule ^Skraldespande/index\.html$ http://www.carbi.dk/skraldespande.html [R=301,L]
    RewriteRule ^Udend_rs_skraldespande/index\.html$ http://www.carbi.dk/skraldespande-udendors.html [R=301,L]
    RewriteRule ^gadeskilte\.htm$ http://www.carbi.dk/skiltemateriale.html [R=301,L]
    RewriteRule ^brochurestander\.htm$ http://www.carbi.dk/skiltemateriale.html [R=301,L]
    RewriteRule ^rollups\.htm$ http://www.carbi.dk/skiltemateriale.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/index\.html$ http://www.carbi.dk/saebedispensere.html [R=301,L]
    RewriteRule ^Toiletspand___poseskjuler/index\.html$ http://www.carbi.dk/toiletspand.html [R=301,L]
    RewriteRule ^Tilbeh_r/index\.html$ http://www.carbi.dk/kost-fejebakke.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage10\.html$ http://www.carbi.dk/saebedispenser-rustfristaal.html [R=301,L]
    RewriteRule ^Toiletspand___poseskjuler/imagepage0\.html$ http://www.carbi.dk/hygiejnepose-holder.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage16\.html$ http://www.carbi.dk/sabedispenser-solv.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage13\.html$ http://www.carbi.dk/toiletspand-affaldsspand.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage18\.html$ http://www.carbi.dk/saebedispenser-hvid.html [R=301,L]
    RewriteRule ^Skraldespande/imagepage4\.html$ http://www.carbi.dk/skraldespand-vippelag.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage11\.html$ http://www.carbi.dk/toiletrulle-dispenser.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage15\.html$ http://www.carbi.dk/pedalskraldespand-dispenserserie.html [R=301,L]
    RewriteRule ^S_be___toiletdispensere/imagepage12\.html$ http://www.carbi.dk/toiletrulle-dispenser.html [R=301,L]
    RewriteRule ^Askeb_ger_oph_ngning/imagepage9\.html$ http://www.carbi.dk/vaghangt-askebaeger.html [R=301,L]





    RewriteCond %{HTTP_HOST} !^(www\.carbi\.dk)?$ [NC]
    RewriteRule ^(.*)$ http://www.carbi.dk/$1 [R=301,L]

    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php?q=$1 [NC,QSA,L]
Avatar billede jily Nybegynder
01. marts 2011 - 14:40 #7
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester