我使用mod_rewrite来创建搜索引擎优化的URL。基本上,事情的作品以下列方式: 所有的请求都通过.htaccess进行捕获并重定向到一个PHP脚本(比方说transform.php)。 transform.php解析SEO URL,并将其转换成一个正常的URL,然后包括的index.php,然后捕获应用程序(的index.php的)输出,并使用正则表达式来转换所有正常的网址搜索引擎优化的URL。 因此,关键的一步就是让所有的请求经过transform.php。我的。htaccess是相当长的,但是我设法将其限制到下面的行。

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

在问题发生与初始(根)URL: http://mysite.com/ 。当我键入 http://mysite.com/ 和遗址位于我的本地补偿,一切工作正常。 http://mysite.com/ 是由htaccess的抓住送到transform.php用于进一步处理。然而另一台服务器这行不工作的(假设为 http://mysite-other-server.com / )。此行的.htaccess根本不赶请求。一切正常的 http://mysite-other-server.com/index.php虽然。

此外我有这样的第二台服务器上的几个地点,其中一些工作,而他们中的一些没有。这就像一些他们的网址是第一解析为的http:// mysite的,其他服务器。 COM /的index.php ,然后通过的.htaccess处理,而对他人的URL没有解决与的 http://mysite-other-server.com/

我很困惑,并试着用搜索引擎没有任何的运气。任何帮助高度赞赏。

有帮助吗?

解决方案

我假定的Apache被配置为不接受.htacces文件。

您必须从与所述的AllowOverride设置的httpd配置启用它。

http://httpd.apache.org/docs/2.0 /mod/core.html#allowoverride

另一种可能性是在生产服务器尚未加载mod_rewrite的,检查在LoadModule指示了点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top