0

www.domain.com/example.phpURLを正常にリダイレクトするこのソリューションを見つけましたが、次のようにwww.domain.com/exampleサブディレクトリがほとんどない場合は同じことができません:domain.com/dir1/di2/dir3/example.phpdomain.com/dir1/di2/dir3/example

以前のリダイレクトを機能させるには、このルールをどのように変更する必要がありますか?

RewriteRule (.*).php$ /$1 [R=301,L]
RewriteRule (.*).html$ /$1 [R=301,L]

これは私の .htaccess です

ErrorDocument 404 /misc/404.html

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteRule (.*).php$ /$1 [R=301,L]
RewriteRule (.*).html$ /$1 [R=301,L]

# Forces a trailing slash to be added
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
#RewriteRule (.*)$ /$1/ [R=301,L]

ありがとうございました!

4

1 に答える 1

1

http://demo.domain.com/en/index.php私を連れて行ってくれるしhttp://demo.domain.com/index、私を連れて行ってくれるはずhttp://demo.domain.com/en/index

.htaccess は /en/ ディレクトリにあります

以下を追加する必要があります。

RewriteBase /en/

右下RewriteEngine on

/en/また、リダイレクトのルールと条件にを追加する必要がある場合もあります。

RewriteRule (.*).php$ /$1 [R=301,L]
RewriteRule (.*).html$ /$1 [R=301,L]

する必要があります:

RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule (.*).php$ /en/$1 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule (.*).html$ /en/$1 [R=301,L]
于 2012-09-25T21:43:09.693 に答える