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. |
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.