我的.htaccess
文件需要提供以下内容:
我设法最接近(包括强制WWW,删除PHP文件扩展名并添加尾部斜杠)如下:
RewriteEngine On
RewriteBase /
# Force WWW prefix
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^([^.]+)\.([a-z]{2,4})$ [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Remove .php extension
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)/$ $1.php [L]
# Force trailing slash
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
但我无法自定义此内容以涵盖上述所有内容。我尝试了.htaccess
规则的多种组合无效,那么有没有.htaccess
位专家愿意提供帮助吗? =)
答案 0 :(得分:1)
Force WWW prefix
阻止后,您可以拥有以下附加规则:
RewriteCond %{THE_REQUEST} \s/+(properties)\.php\?location=([^\s&]+)&rooms=([^\s&]+)&rent=([^\s&]+)&sort=([^\s&]+) [NC]
RewriteRule ^ /%1/%2/%3/%4/%5? [R=302,L]
RewriteRule ^(properties)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ $1.php?location=$2&rooms=$3&rent=$4&sort=$5 [L,QSA,NC]
RewriteCond %{THE_REQUEST} \s/+(properties)\.php\?id=([^\s&]+)\s [NC]
RewriteRule ^ /%1/%2? [R=302,L]
RewriteRule ^(properties)/([^/.]+)/?$ $1.php?id=$1 [L,QSA,NC]
修改:强制HTTPS 将# Force WWW prefix
规则更改为:
# Force WWW prefix
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L]
张www.domain.com
到您的实际域名。