Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache mod_rewrite:这些简单的重写规则可以改进吗?还有建议!_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache mod_rewrite:这些简单的重写规则可以改进吗?还有建议!

Apache mod_rewrite:这些简单的重写规则可以改进吗?还有建议!,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我终于开始理解Apache mod_rewrite。太棒了 请看以下内容: 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) 永久将所有请

我终于开始理解Apache mod_rewrite。太棒了

请看以下内容:


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_的家伙能给我一些建议,比如:“这样可能会更好…”,“如果…”可能会有问题,等等,我只是好奇

谢谢

  • 使用
    量词代替
    *
    ,您不需要转义替换URL:

    RewriteRule ^folder_name/?$ http://example.com/some/path/some_page.html [R=301,L]
    
  • >P>您可能需要考虑HTTP 1请求,其中缺少主机头字段。另一个有用的扩展是考虑HTTPS:

    RewriteCond %{HTTP_HOST} !^(|example\.com)$
    RewriteCond %{HTTPS} ^on(s)|
    RewriteRule ^ http%1://example.com%{REQUEST_URI} [R=301,L]