我的.htaccess中有这段代码,我需要转换到microsoft azure主机,因为它不起作用。
RewriteEngine On RewriteCond %{THE_REQUEST} /index\.php[?/\s] RewriteRule ^index\.php$ /en/ [R=301,L] RewriteCond %{THE_REQUEST} /index_cz\.php[?/\s] RewriteRule ^index_cz\.php$ /cz/ [R=301,L] RewriteRule ^/en/?$ index.php [NC,L] RewriteRule ^cz/?$ index_cz.php [NC,L]
有人能帮我吗?谢谢各位
我构建了一个简单的PHP项目来模拟重写规则的情况。
根目录:
而像“en”这样的文件夹中的index.php
的内容是:
en文件夹中的“echo”响应
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1m" stopProcessing="true">
<match url="^index\.php$" />
<action type="Rewrite" url="/en/" /> <!--modified remove '/'-->
</rule>
<rule name="rule 2m" stopProcessing="true">
<match url="^index_cz\.php$" />
<action type="Rewrite" url="/cz/" /> <!--modified remove '/'-->
</rule>
<rule name="rule 3m" stopProcessing="true">
<match url="^/en/?$" ignoreCase="true" />
<action type="Rewrite" url="/index.php" />
</rule>
<rule name="rule 4m" stopProcessing="true">
<match url="^/cz/?$" ignoreCase="true" /> <!--modified add '/'-->
<action type="Rewrite" url="/index_cz.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
当我访问像超文本传输协议://{web_site_name}这样的URL时azurewebsites.net/index_cz.php?a=a
cz文件夹数组中的响应(2){[“a”]=
如有任何问题,请随时通知我。
您需要在适当的部分使用重写规则创建一个web.config。
我从http://htaccesstowebconfig.com/
<rule name="rule 1m" stopProcessing="true">
<match url="^index\.php$" />
<action type="Rewrite" url="//en/" />
</rule>
<rule name="rule 2m" stopProcessing="true">
<match url="^index_cz\.php$" />
<action type="Rewrite" url="//cz/" />
</rule>
<rule name="rule 3m" stopProcessing="true">
<match url="^/en/?$" ignoreCase="true" />
<action type="Rewrite" url="/index.php" />
</rule>
<rule name="rule 4m" stopProcessing="true">
<match url="^cz/?$" ignoreCase="true" />
<action type="Rewrite" url="/index_cz.php" />
</rule>
整个web.config文件看起来都像这个
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1m" stopProcessing="true">
<match url="^index\.php$" />
<action type="Rewrite" url="//en/" />
</rule>
<rule name="rule 2m" stopProcessing="true">
<match url="^index_cz\.php$" />
<action type="Rewrite" url="//cz/" />
</rule>
<rule name="rule 3m" stopProcessing="true">
<match url="^/en/?$" ignoreCase="true" />
<action type="Rewrite" url="/index.php" />
</rule>
<rule name="rule 4m" stopProcessing="true">
<match url="^cz/?$" ignoreCase="true" />
<action type="Rewrite" url="/index_cz.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
问题内容: 我正在编写一个小型CMS,以更好地了解它们的工作方式并学习有关PHP的一些新知识。但是,我遇到了一个问题。 我想使用mod_rewrite(尽管如果有人有更好的解决方案,我会尝试使用它)来生成漂亮的干净URL,所以site.com/index.php?page=2可以改为site.com/tools 据我了解,每次添加新页面时,我都需要更改.htaccess文件,这是我遇到问题的地方,
问题内容: 如何使用PHP中特定的.htaccess和mod_rewrite页面强制使用SSL / https。 问题答案: 对于Apache,您可以使用强制SSL : 除非为当前连接启用了SSL上的HTTP(即HTTPS),否则该指令禁止访问。这在启用SSL的虚拟主机或目录中非常方便,可防止配置错误暴露应受保护的内容。使用此指令时,将拒绝所有未使用SSL的请求。 不过,这不会重定向到https。
问题内容: 我没有运气让我的.htaccess与mod_rewrite一起工作。基本上,我要做的就是从“ http://www.example.com ”和“ https://www.example.com ”中删除“ www ”。 如果我缺少任何内容(conf文件等,请通知我,我将对此进行更新) 这是我的.htaccess文件(位于@ / var / www / site / trunk / h
以下是我的htaccess代码: 我需要制定一个重写规则,如下所示:
当我通过codeigniter应用程序进行调试时,错误似乎出现在codeigniter.php中的第308行,如下所示: 谁能告诉我怎么回事吗?
问题内容: 好的,我一直在遇到aws或某些问题,以至于我似乎无法使mod_rewrite正常工作。 仅出于测试目的,我做了以下工作: 1使用AWS控制台从向导部署新的AMI 64位实例 2百胜装的apache 3编辑了/etc/httpd/conf/httpd.conf: 好像 4确保 在文件中且未注释。 5重启apache: 6创建了两个新文件: 包含: 包含: 7.创建文件: 包含(共TOTA