2

我想重定向这种形式的 URL: /page.html?variable=value&othervar=true&thirdvar=100

对此: /page/?variable=value&othervar=true&thirdvar=100

所以基本上我只想用 a替换.html中间的,但我需要保留它附带的 get 字符串。这是我尝试过的:URLforward slash

重写规则 ^page.html(.+)$ /page/$1 [L,R=301]

但这似乎对我不起作用。我最近做了类似的事情,但我不知道我在这里缺少什么。感谢您的任何意见。

4

1 回答 1

10

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_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 回答