我的域名是https://example.com - 我正在使用我的.htaccess从URL中删除文件扩展名,因此https://example.com/pages/file.php显示为https:/ /example.com/pages/file,工作正常 .
我现在遇到一些重复内容的问题,并希望将https://www.example.com/pages/file重定向到https://example.com/pages/file . 我当前的.htaccess看起来如下(它在根目录 and 中放置一次子目录/ pages /):
ErrorDocument 404 /404.php
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php [L]
问题是,通过访问https://www.example.com/pages/file,我被重定向到https://example.com/file,所以没有/ pages / part,这一点非常重要子页面存储在该目录中 . 我不是很重要,但我的根目录中有一些header.php和footer.php文件,这些文件也需要访问 .
1 回答
尝试移动此规则:
在顶部,正好在这些规则之下:
这应该会导致带有“/ pages /”的网址被正确重定向