在.htaccess中设置首选版本

时间:2016-07-16 15:08:06

标签: .htaccess

我正在尝试设置.htaccess文件。如果用户在地址末尾包含index.php和index.html,我想将其设置为仅转到当前文件夹的路径。 如果用户错过了www,我希望将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>

子文件夹称为闪烁。

1 个答案:

答案 0 :(得分:1)

使用%{REQUEST_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]