我最后开始了解Apache mod_rewrite。这真是太棒了!
Plz看看以下内容:
1)永久重定向http://www.domain.com/folder_name/
(有或没有最终斜杠,有或没有www
)到http://www.domain.com/some/path/some_page.html
RewriteRule ^folder_name[/]*$ "http\:\/\/domain\.com\/some\/path\/some_page.html" [R=301,L]
2)永久性地将对www.domain.com...
的所有请求重定向到相同的路径和文件请求但在域中没有www
RewriteCond %{HTTP_HOST} !^domain.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\/$1" [R=301,L]
他们都按预期工作并完成工作,我只是好奇,如果在mod_rewrite中比我更专业的人可以给我一些建议:“它可能会更好以这种方式......“,”如果......“等等可能会出现问题。
谢谢!
答案 0 :(得分:1)
使用?
量词而不是*
,您无需转义替换网址:
RewriteRule ^folder_name/?$ http://example.com/some/path/some_page.html [R=301,L]
您可能需要考虑缺少 Host 标头字段的HTTP 1.0请求。另一个有用的扩展是将HTTPS考虑在内:
RewriteCond %{HTTP_HOST} !^(|example\.com)$
RewriteCond %{HTTPS} ^on(s)|
RewriteRule ^ http%1://example.com%{REQUEST_URI} [R=301,L]