在.htaccess中设置首选版本

在.htaccess中设置首选版本,.htaccess,.htaccess,我正在尝试设置一个.htaccess文件。如果用户在地址末尾包含index.php和index.html,我想将其设置为只转到当前文件夹的路径。 如果用户错过了,我希望将www添加到地址中 我在同一个地址运行两个网站。一个使用根文件夹,另一个使用文件夹。索引位对两者都很好,但是当我设置www时,如果他们错过了它,它会转到根目录上的主页,而不是文件夹。 有人能建议我需要在这里做什么,我应该把.htaccess文件放在哪里才能让它工作吗 <IfModule mod_rewrite.c>

我正在尝试设置一个.htaccess文件。如果用户在地址末尾包含index.php和index.html,我想将其设置为只转到当前文件夹的路径。 如果用户错过了,我希望将www添加到地址中

我在同一个地址运行两个网站。一个使用根文件夹,另一个使用文件夹。索引位对两者都很好,但是当我设置www时,如果他们错过了它,它会转到根目录上的主页,而不是文件夹。 有人能建议我需要在这里做什么,我应该把.htaccess文件放在哪里才能让它工作吗

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^candle-light\.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.candle-light.co.uk/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.candle-light.co.uk/ [R=301,L]
</IfModule>

重新启动发动机
重写基/
RewriteCond%{HTTP_HOST}^candle light\.co.uk$[NC]
重写规则^(.*)$http://www.candle-light.co.uk/$1[R=301,L]
重写cond%{THE_REQUEST}^[A-Z]{3,9}\/index\.php\HTTP/
重写规则^index\.php$http://www.candle-light.co.uk/ [R=301,L]

子文件夹被称为闪烁。

使用
%{REQUEST\u URI}
变量而不是
$1
尝试这些规则:

RewriteEngine On

# skip POST requests
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]

# add www
RewriteCond %{HTTP_HOST} ^candle-light\.co\.uk$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

# remove index.php
RewriteCond %{THE_REQUEST} /index\.(php|html) [NC]
RewriteRule ^(.*)index\.(?:html|php)$ /$1 [L,R=301,NC,NE]

那很好用。我需要额外添加几行吗?或者我可以修改已经存在的内容来删除index.html吗?我的意思是,代码的最后两行删除index.php。我可以修改这些行来删除index.html吗?或者我需要再添加两行来处理index.html吗?完成了。非常感谢你。你是一个真正的明星。邮件数据在重定向后丢失。最好跳过重定向的POST请求。现在检查更新的答案。现在可以了。我假设当有人访问该网站时,它会将他们重定向到正确的版本(添加www并删除index.php)。之后,当他们点击链接发布表单时,他们已经在正确的位置,因此不需要再次重定向。对吗?