htaccess 规则将双斜线视为单斜线

htaccess rule to consider double slashes as single

我正在开发一个使用 codeigniter 构建的项目。我犯的错误是我在项目文件中给出的许多链接(href)中的 base_url() 方法之后添加了“/”,如下所示。

<? echo base_url();?>/about

所以 URLS 看起来像

http://myproject.com//about

代替

http://myproject.com/about

因此,它会导致 404 错误。

现在的情况是网站准备好了,但我只能更新项目的 .htaccess 文件来解决这个问题。

那么我可以在 .htaccess 文件中写入任何规则,使其将 URL 中的双斜杠视为单斜杠并打开特定页面吗?

有趣的是,它已经以某种方式将双斜线视为单斜线并在开发服务器上打开 "About" 页面。但是现在随着服务器的改变,我开始面临404问题。

您可以将此规则用作 DOCUMENT_ROOT/.htaccess 文件中的 第一个规则 以删除多个 //:

RewriteEngine On

RewriteCond %{THE_REQUEST} //
RewriteRule ^(.+?)/?$ / [R=302,L,NE]

实际上您已经将基数 url 设置为

$config['base_url'] = 'http://myproject.com/';

当你像这样使用它时

<? echo base_url();?>/about

它正在添加到 // 因此您必须像这样更改您的页面

 <? echo base_url();?>about

如果您不能更改路径,则可以将 htaccess 设置为

RewriteEngine On

RewriteCond %{THE_REQUEST} //
RewriteRule ^(.+?)/?$ / [R=302,L,NE]