Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

.htaccess og 301 redirects for root- og subfolder (i en og samme fil)

Side 1 ud af 1 (3 indlæg)
  • 1
Fra København
Tilmeldt 16. Feb 12
Indlæg ialt: 447
Fra  Kammersgaard Development Skrevet kl. 16:34
Hvor mange stjerner giver du? :

OK - first of all, jeg ved ikke om jeg har placeret dette korrekt, men jeg håber alligevel der er en venlig sjæl der kan fortælle mig hvor filmen knækker.

Jeg har en dansk Wordpress-installation i root directory på min FTP. Jeg har så en undermappe der hedder /en/ - og ja, her er så den engelske version af siden, i en ny Wordpress-installation.

For nyligt har vi ændret lidt i URL-strukturen, og jeg troede egentlig bare jeg kunne lave en .htaccess-fil til hver mappe - altså en i root der hører til /-siden, og en i undermappen der hører til /en/-siden.

Men det lader sig ikke gøre - jeg ved ikke om det er en fejl i/hos GoDaddy som er host, men i hvert fald bliver kun .htaccess i root læst. 301 redirects fra undermappen bliver ikke genkendt, så f.eks. /en/cases/ sendes ikke videre til /en/portfolio/.

Er der en måde hvorpå man kan samle de to .htaccess-filer i en og samme fil.

Lige nu ser begge filer sådan ud til at starte med - bare med hhv. / og /en/:

rewritecond %{QUERY_STRING} ^$
rewriterule ^cases/$ /portfolio/? [R=301,NE,NC,L]
*** og her kommer alle andre rewrite-rules så**** # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress 

og for /en/, helt klassisk:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /en/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /en/index.php [L]
</IfModule>

# END WordPress Problemet er, at hvis jeg bare tilføjer: rewritecond %{QUERY_STRING} ^$
rewriterule ^en/cases/$ /en/portfolio/? [R=301,NE,NC,L] under den første, danske, redirect, så sker der ikke noget, da RewriteBase jo er sat til / i første, danske, .htaccess.

Er der en måde hvorpå man kan samle de to .htaccess-filer i en og samme fil, så jeg kan få redirects til at virke korrekt?

Håber jeg fik forklaret mig selv godt nok, ellers skal I være velkomne til at skrive.

Mvh Kasper.

Tilmeldt 28. Jun 13
Indlæg ialt: 142
Skrevet kl. 17:20
Hvor mange stjerner giver du? :
Gennemsnit 5,0 stjerner givet af 1 person

Bare at skrive
RewriteRule ^en/cases/$ /en/portfolio/ [R=301,NC,L]
I den engelske virker altså ikke?

Hvad med
RewriteRule ^cases/$ /portfolio/ [R=301,NC,L]
RewriteRule ^en/cases/$ /en/portfolio/ [R=301,NC,L]
I den danske?

Den her burde tage begge i ét hug
RewriteRule ^(.*)cases(.*) $1portfolio$2 [R=301,NC,L]

Alle tre burde virke. 

 

Fra København
Tilmeldt 16. Feb 12
Indlæg ialt: 447
Fra  Kammersgaard Development Skrevet kl. 12:32
Hvor mange stjerner giver du? :
Side 1 ud af 1 (3 indlæg)