gpt4 book ai didi

php - .htaccess 强制 'www.' 并将其余的 url 正常附加到末尾

转载 作者:行者123 更新时间:2023-12-02 04:49:20 25 4
gpt4 key购买 nike

好的,我有一个 .htaccess 文件,如下所示:

RewriteEngine On
RewriteRule ^foto/([\w-]+).jpg fotos.php?pic1=$1 [L,NS]
RewriteRule ^afbeeldingen/([\w-]+).jpg fotos.php?pic=$1 [L,NS]
RewriteRule ^header/([\w-]+).jpg header.php?head_jpg=$1 [L,NS]
RewriteRule ^header/([\w-]+).png header.php?head_png=$1 [L,NS]
RewriteRule ^def/([\w-]+).jpg def_header.php?head_def=$1 [L,NS]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301]

问题只涉及最后两行,即我想强制使用“www.”在所有网址前。这是我在尝试访问 sitemap.xml 时想要的结果:

http://domain.com/sitemap.xml -> http://www.domain.com/sitemap.xml

这是我得到的结果:

http://domain.com/sitemap.xml -> http://www.domain.com/index.php

所有其他 url 似乎工作正常(感谢 anubhava)。 'www.'在 url 上被正确强制,例如 http://domain.com/category/article -> http://www.domain.com/category/article

在阅读了以下堆栈问题 (.htaccess force "www." on everything but subdomains and remove trailing slashes) 后,我尝试了以下操作:

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

没有任何成功。我还尝试更改放置规则的顺序(即 RewriteEngine On 下的重写条件和规则),这似乎没有什么不同。我正在使用 Yii 框架。

有人知道我在这里做错了什么吗?提前致谢!

更新

我忘了说我在根目录下实际上没有 sitemap.xml 文件,而是使用 Yii 的 urlManager 重新路由到 Controller 操作以生成 sitemap.xml,如下所示:

'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
// 'matchValue' => true,
'rules'=>array(
...
'sitemap.xml'=>'site/sitemapxml',
...
),
),

urlManager 本身生成一个 .htaccess 文件,这很可能与我自己的 .htaccess 文件发生冲突。有什么想法吗?

最佳答案

规则的顺序在 .htaccess 中很重要。

移动这条规则:

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

就在 RewriteEngine On 行的下方。

关于php - .htaccess 强制 'www.' 并将其余的 url 正常附加到末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19156757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com