mod_rewrite重定向而不是重写URL

时间:2012-09-04 07:08:01

标签: .htaccess mod-rewrite hosting

大家好日子,

我有一个包含以下内容的HTACCESS文件:

Options +FollowSymlinks

RewriteEngine on

RewriteRule ^(.*)$ http://mydomain.com/public/$1


RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

代码的目的是当用户输入我的域名'mydomain.com'时,它不会调用mydomain.com/index.php,而是调用mydomain.com/public/index.php没有用户注意到重定向(或内部重定向)。

我在某个网站上获得了代码,它可以在我的本地机器(WAMP堆栈)上运行。 问题是,当我现在将其转移到共享托管服务器时,则会发生外部重定向而不是内部重定向。例如:

然后在地址栏中输入mydomain.com mydomain.com/public。

我已经检查了托管服务器的配置,是的,

  • 启用了HTACCESS。
  • 启用了mod_rewrite。
  • 我可以使用HTACCESS文件修改PHP设置。

共享托管服务器实现LAMP堆栈。

对我失踪的事情有任何想法?非常感谢你!

修改

我的所有重写都不仅重定向那些在本地计算机上完美运行的代码。

1 个答案:

答案 0 :(得分:2)

摆脱规则目标中的http://mydomain.com。它告诉重写引擎重定向而不是内部重写。