微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的htaccess RewriteRule在localhost / mysite上工作,但不在mysite.com上的1&1共享主机上

解决了:

不幸的是,解决scheme并不令人满意。 今天早上,在试用@ Wige的build议时,我惊奇地发现,Expected的值事实上是作为GET查询发送到页面的。 显然,1&1(我知道谁最近几周已经在改变他们的环境),做了一些幕后工作,我的问题已经得到了神奇的解决,现在我所有的以前的工作代码都按照原先的预期工作。

新的信息 :生产服务器的Apache版本是我的本地主机上的1.3.342.2.21

我无法弄清楚为什么我的RewriteRule在生产中不能正常工作。

RewriteRule ^page/pretty-url/(.*)$ page.PHP?query=$1 [L]

将Apache转换为Nginx

使用.htaccess通过index.PHP重新路由所有的请求,除了一些特定的请求

WAMP,Laravel 5:路由不工作 – NotFoundHttpException

在.htaccess中需要一个特定的URL RewriteRule

.htaccess – 如何在某些页面上设置SSL(脚本需要修改

在我的本地testing环境( localhost/mysite/page/pretty-url/{...} )中工作正常,但在mysite.com/page/pretty-url/{...}上无法正常工作。 它像预期的那样加载page.PHP ,但显然这个?query=$1片断被忽略( $_GET是空的)

我想这个问题与服务器configuration有关。 我在1&1共享主机帐户没有httpd.conf访问。

RewriteRule做了什么(或者应该做什么):

我想要urls喜欢

* example.com/page/pretty-url/{{info_for_dynamic_content}}

被改写

* /page.PHP?query={{info_for_dynamic_content}}

所以我可以访问info_for_dynamic_content

PHP内作为$_GET['query']

完整的.htaccess文件供参考:

AddHandler x-mapp-PHP6 .PHP DirectoryIndex index.PHP ErrorDocument 404 /index.PHP Options +FollowSymLinks # per @Jacques Chester's suggestion Options -MultiViews RewriteEngine on RewriteBase / # the rule in question RewriteRule ^page/pretty-url/(.*)$ page.PHP?query=$1 [L] RewriteCond %{REQUEST_FILENAME}.PHP -f RewriteRule ^(.*)$ $1.PHP RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.PHP !-f RewriteRule (.*) /index.PHP [L]

我如何将我的.htaccess文件转换Nginx

在共享主机上的Symfony的htaccess

Angular html5模式不能在Apache中工作

用mod_rewriteredirect和重写

强制非www到htaccess中的www

最有可能的是,你的主机将变量存储在其他地方。 我会添加一个调用PHPinfo(); 到你的脚本,并通过在那里的环境变量,看看你是否可以找到应该得到的值。

似乎连接到1&1的托管环境。

看到这个问题 ,特别是这个答案 。

基本上看来,1&1启用“MultiViews”。 通过增加

Options -MultiViews

您停用您的网站的设置,并根据各种报告,这解决了这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐