我正在尝试设置.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>
子文件夹称为闪烁。
答案 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]