使用来自.htaccess的Rewriterule重定向

时间:2014-02-25 08:38:08

标签: .htaccess url mod-rewrite redirect rewrite

我有一个域名(比如说www.example.com),并希望这个指向我服务器的/ Example_folder /(在/ var / www /)中。

因此,如果我尝试转到www.example.com/images/test.html或example.com/images/test.html,它应该实际指向/Example_folder/images/test.html.

我尝试使用以下代码来解决这个问题,但我无法理解。

试验#1:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ [NC]
Rewriterule ^(.*) /Example_Folder/ [L]

如果我使用上面的代码,我会得到ERR_TOO_MANY_REDIRECTS。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ [NC]
Rewriterule ^(.*) /Example_Folder/index.html [L]

如果我使用上面的代码(指定了index.html),它会重定向,但我无法让我的域指向其子目录。 (www.example.com/images/test.html也会指向www.example.com/index.html)

我使用以下链接中的代码工作了: htaccess Silent Redirect to Subdirectory: Subdirectory showing when no trailing '/'

剩下的最后一点是,当我指向www.example.com/Example_Folder时,我希望地址栏显示www.example.com,但我还没想出来。

1 个答案:

答案 0 :(得分:0)

您可以使用此基于负前瞻的规则来避免重写循环:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC]
Rewriterule ^((?!Example_Folder/).+)$ /Example_Folder/$1 [L,NC]

这意味着只有在URI尚未以Example_Folder/开头时重写。