我正在尝试将http://www.gelda.com/web_pages/food_index.html重定向到http://food.gelda.com/。
我尝试了以下内容:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
Redirect 301 /web_pages/ http://food.gelda.com/
</IfModule>
这不起作用,重定向到http://food.gelda.com/food_index.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^gelda.com/web_pages/food_index.html$ [OR]
RewriteCond %{HTTP_HOST} ^www.gelda.com/web_pages/food_index.html$
RewriteRule ^(.*)$ http://food.gelda.com/ [R=301,L]
</IfModule>
这也重定向到http://food.gelda.com/food_index.html
我不知道如何在我的.htaccess文件中执行此操作。我需要/web_pages/
中的任何内容转到food.gelda.com
。
答案 0 :(得分:0)
基于重写模块的两种选择:
您可以在主机文档根文件夹中使用http服务器主机配置(首选)或动态配置文件(因此并行到/web_pages
文件夹):
RewriteEngine on
RewriteCond %{HTTP_HOST} ^gelda\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.gelda\.com$
RewriteRule ^/?web_pages/ http://food.gelda.com/ [R=301]
或者您在主机/web_pages
文件夹中使用动态配置文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^gelda\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.gelda\.com$
RewriteRule ^ http://food.gelda.com/ [R=301]
在所有情况下,显然需要加载和激活重写模块。如果您决定使用动态配置文件(.htaccess
样式文件),则需要使用http服务器主机配置中的AllowOverride
指令启用它的解释。显然,该文件也需要服务器进程可读。
一般提示:您应该始终更喜欢将此类规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess
样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。只有在您无法控制主机配置(读取:非常便宜的托管服务提供商)或者您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)的情况下,它们才被支持作为最后一个选项。 )。