2

この形式の URL をリダイレクトしたい: /page.html?variable=value&othervar=true&thirdvar=100

これに: /page/?variable=value&othervar=true&thirdvar=100

.htmlしたがって、基本的には の真ん中をURLに置き換えたいだけですがforward slash、それに付属する get 文字列を保持する必要があります。これは私が試したものです:

RewriteRule ^page.html(.+)$ /page/$1 [L,R=301]

しかし、これは私にとってはうまくいかないようです。最近、同様のことが機能しましたが、ここで何が欠けているのかわかりません。ご意見ありがとうございます。

4

1 に答える 1

10

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# external redirect from /example.html to /example
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.html [NC]
RewriteRule ^ /%1/ [R=301,L]

# internal forward from /example/ to //example.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+?)/?$ /$1.html [L]
于 2013-03-29T15:24:29.757 に答える