Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess用于mvc框架以允许www_Php_.htaccess - Fatal编程技术网

Php htaccess用于mvc框架以允许www

Php htaccess用于mvc框架以允许www,php,.htaccess,Php,.htaccess,我一直在研究htaccess,并对它有了不少了解,但我仍然停留在一个非常具体的需求上。实际上有两个需求,但其中一个是关键的,而另一个是“非常好” 问题1:在MVC框架上编写传销网站的htaccess文件,允许用户在网站不接受www.mlmsiteaddress.org/aff/affiliatename时键入www.mlmsiteaddress.org/aff/affiliatename的最佳方式是什么 背景:该软件允许插入新成员,然后为新成员提供一个URL,其附属标识符、电子邮件、电话号码、地

我一直在研究htaccess,并对它有了不少了解,但我仍然停留在一个非常具体的需求上。实际上有两个需求,但其中一个是关键的,而另一个是“非常好”

问题1:在MVC框架上编写传销网站的htaccess文件,允许用户在网站不接受www.mlmsiteaddress.org/aff/affiliatename时键入www.mlmsiteaddress.org/aff/affiliatename的最佳方式是什么

背景:该软件允许插入新成员,然后为新成员提供一个URL,其附属标识符、电子邮件、电话号码、地址等显示在横幅上,下面是一个“挤压页面”或者是非常简单的选择加入表格,它会给公司带来新的潜在客户,而在提交表格后发生的其他事情与这个问题没有任何关系

问题:当用户单击链接或手动键入URL www.mlmsiteaddres.org/aff/affiliatename时,它不会显示附属横幅信息。相反,它只显示公司横幅,如果用户试图导航到非活动分支机构的站点,这是默认的分支机构。出于某种原因,这以前不是一个问题,但在我清除了网站上的BLACOLE/JS病毒后不久,最近成了一个问题。据我所知,我们现在使用的htaccess文件与软件供应商提供给我们的文件完全相同

正常行为:以前,URL的www部分只是被忽略,站点加载到每个附属站点的URL中。因此,即使会显示分支机构横幅信息,分支机构名称也不会填充到URL中。这让我想到

问题2:使用htaccess在附属网页上时,如何强制URL在横幅中显示附属用户名

问题3:htaccess是做这些事情的唯一方法吗(假设两者都有可能)?我对它有一些基本的工作知识,但不是专家,尽管一旦我解决了这个问题,我会有更丰富的理解

这是目前正在使用的htaccess(可以说是随传销软件“开箱即用”)提供的


命令允许,拒绝
全盘否定
重新启动发动机
重写规则^aff/(.*)$/index.php/aff/?aff=$1[R,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/index.php/$1[R=301,NC]

如果我理解正确,连接到不起作用,但确实起作用。在这种情况下,如果站点未通过(使用www或任何其他子域)访问,则可以强制重定向:


命令允许,拒绝
全盘否定
重新启动发动机
重写cond%{HTTP_HOST}^mlmsiteaddress\.org$[NC]
重写cond%{HTTP_HOST}^$
重写规则^/(*))http://mlmsiteaddress.org/$1[L,R]
重写规则^aff/(.*)$/index.php/aff/?aff=$1[R,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/index.php/$1[R=301,NC]

很抱歉,我耽搁了这么长时间才回复。我立即看到了你的反应,很高兴能得到一些有资格的帮助,但还没能把它付诸实践。事实上,我更搞砸了,虽然我恢复了原始的htaccess文件,但url现在仍然显示出来,因为问题是当用户键入www.mlmsiteaddress.org时,他们会自动获得。当他们进入www.mlmsiteaddress.org/aff/affiliatename时,它只会进入,而不会加载附属横幅。但是如果他们转到,它会正确加载附属横幅。我需要使这个网站,使人们可以进入www(因为他们习惯这样做,无论任何相反的指示),他们仍然导航到正确的地方,我很熟悉,但不是专家的MVC框架。只要重新阅读我的第一条评论,这没有多大意义。我尝试了您发布的解决方案的一个变体,它导致URL按照我上面提到的方式读取。我尝试了发布的解决方案,它做了同样的事情。我用原始的htaccess内容替换了htaccess,但它仍然像上面提到的那样重定向。我将查看控制器文件。我添加的3行应该只重定向到您的根域,并将所有内容保留在/,因此键入www.mlmsiteaddress.org将重定向到mlmsiteaddress.org,键入www.mlmsiteaddress.org/aff/affiliatename将重定向到mlmsiteaddress.org/aff/affiliatename,它将重定向到mlmsiteaddress.org/index.php/aff/?aff=affiliatename。这不是你想要的吗?这正是我想要的,但由于某种原因,当我进入www.mlmsiteaddress.org/aff/affiliatename:。。。返回控制器方法不存在的mvc错误。我现在更仔细地检查控制器文件,看看我是否能确定那里有什么,尽管我对此表示怀疑,因为我是唯一编辑该文件的人,自从我上个月从网站上删除blacole工具包以来,该文件一直没有被编辑过。
<Files ~ "serial.txt$">
  Order allow,deny
  Deny from all
</Files>

RewriteEngine On

RewriteRule ^aff/(.*)$ /index.php/aff/?aff=$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [R=301,NC]
<Files ~ "serial.txt$">
  Order allow,deny
  Deny from all
</Files>

RewriteEngine On

RewriteCond %{HTTP_HOST} !^mlmsiteaddress\.org$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://mlmsiteaddress.org/$1 [L,R]

RewriteRule ^aff/(.*)$ /index.php/aff/?aff=$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [R=301,NC]