.htaccess

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

.htaccess

Messaggio da giuseppe500 »

scusate non sapevo dove postarte alla fine ho postato qui mi potete spostare gentilmente se ho sbagliato?
Il mio problema è che sono stati cambiati gli url friendly nella mia applicazione ecommerce prestashop.
Ora nell' htaccess vorrei dare il redirect 410 sulle pagine che non ci sono e non ci saranno piu , posso fare un generatore di testo facilmente , ma non conosco nell' htaccess il comando che da il 410 ad un url completo.
In pratica la mia idea , dato che le espressioni regolari non bastano è quella di generare un file di testo con tutte le pagine in 404 adesso e dargli il 410 con un parsing dell url che è un po complesso per le espressioni regolari, in pratica scarico tutte le pagine coi problemi da web master tool di google e faccio il parsing.
Ho detto cosi ma perchè non conosco bene le espressiooni regolari, in pratica devo dare il 410 a tutte le pagine che non iniziano per 10 parole che sono le prime parole dei miei url giusti.
si puo fare qualcosa ?
al limite se mi dite il comando per il redirect 410 di apache faccio da solo.
grazie.
Avatar utente
eaghezzi
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 725
Iscrizione: martedì 21 luglio 2009, 10:27
Desktop: Lubuntu
Distribuzione: Ubuntu 14.04.1 LTS i686
Sesso: Maschile
Località: Valleambrosia

Re: .htaccess

Messaggio da eaghezzi »

se il web è in php ti conviene farlo in php nell ' index.php

prima fai il match dell'url e poi con la funzione header fai un redirect dove vuoi.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: .htaccess

Messaggio da Zoff »

eaghezzi [url=http://forum.ubuntu-it.org/viewtopic.php?p=4882411#p4882411][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:se il web è in php ti conviene farlo in php nell ' index.php

prima fai il match dell'url e poi con la funzione header fai un redirect dove vuoi.
Ma anche no.

Basta:

Codice: Seleziona tutto

RedirectMatch 301 ^/(parola1|parola2|parola3) /redirect.php
basta sotituire "parola1|parola2|parola3" con la lista di parole separate dal carattere | e sostituire "/redirect.php" con l'indirizzo a cui reindirizzare.
Ho messo 301 perché è lo status code di HTTP normalmente utilizzato per i redirect, ma se per qualche motivo preferisci comunque il 410 basta sostituirlo.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: .htaccess

Messaggio da giuseppe500 »

grazie 1000 Zoff mi sembra una soluzione perfetta.
pero questo è il mio htaccess di un prestashop

Codice: Seleziona tutto

# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>


# Disable Multiviews
Options -Multiviews

RewriteEngine on

RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
RedirectMatch 410 ^/(newstore) /index.php?controller=404
# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
se inserisco
RedirectMatch 410 ^/(newstore) /index.php?controller=404
mi da errore 500 la pagina e non funziona nulla , se lo tolgo tutto funziona , ho sbagliato qualcosa?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: .htaccess

Messaggio da Zoff »

Deve essere abilitato mod_alias
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: .htaccess

Messaggio da giuseppe500 »

ma devo modificare la configurazione di apache o basta cambiare una direttiva nell .htaccess ho guardato su google ma non ho capito molto
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: .htaccess

Messaggio da Zoff »

Va abilitato il modulo in apache:

Codice: Seleziona tutto

sudo a2enmod alias
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: .htaccess

Messaggio da giuseppe500 »

non posso farlo ssono su hosting condiviso e non me lo fanno c'è un altra soluzione?
grazie e scusa l'ignoranza
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: .htaccess

Messaggio da Zoff »

Con rewrite dovrebbe essere:

Codice: Seleziona tutto

RewriteRule   "^/(parola1|parola2|parola3)"  "/redirect.php"  [R=410,L]
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti