使用 .htaccess 将文件夹/目录正确重定向到外部 URL

Ryf*_*lex 1 .htaccess mod-rewrite redirect

我发现不同的变化的负载都在互联网上,我想找到重定向的正确/ propper方式:example.com/folder/test.com/read/old/data/main.php?ac=21323

一些网站/指南将以下内容放在开头:

Options +FollowSymLinks -MultiViews ## No idea...
RewriteEngine On  ## Turns "mod_rewrite" on
RewriteBase / ## No idea...
Run Code Online (Sandbox Code Playgroud)

这些论文是必要的吗?它们都有什么作用?我假设 100% 需要重写引擎才能正常运行。

一些重写规则开始于:^(.*)$一些开始于^(/)$哪些规则是正确的?

有些 URL 以 结尾,/$1有些不以它结尾...

有些以:结尾,[L,R=301,NC]有些[L,R=301]又以哪些是正确的(如果有)结尾?

投反对票,没有帮助,推理或任何东西......哇,伙计们

tza*_*far 5

重定向链接的最快方法是使用

Redirect 301 example.com/folder/ test.com/read/old/data/main.php?ac=21323
Run Code Online (Sandbox Code Playgroud)

重定向比 RedirectMatch 和 RewriteRule 更快。以上规则将永久(301)重定向链接。

L = 表示如果规则匹配,则不会处理进一步的规则。

R = 重定向(301 = 永久,302 = 临时)

NC = (No Case) 不区分大小写

^(.*)$ = 匹配所有内容


RewriteRule [模式] [替换] [标志]

RewriteRule ^/product/(.*)/view$ /product-page2/$1
Run Code Online (Sandbox Code Playgroud)

Pattern 中的任何(.*)在 Substitution 中作为$1, $2, $3可用,在上面的例子中,我们只使用了一个 (. *) 所以只有 $1 可用。如果我们使用多个,那么我们可以使用 $2 等等,如下例所示。

RewriteRule ^/product/(.*)/(.*)/view$ /product-page2/$1/$2
Run Code Online (Sandbox Code Playgroud)

对于 $1 和其他,您可以查看此页面 http://httpd.apache.org/docs/2.2/rewrite/intro.html#InternalBackRefs