.htaccess 将www添加到url并从url中删除.php

.htaccess 将www添加到url并从url中删除.php,.htaccess,.htaccess,所以我需要URL看起来像这样 www.mydomain.com/about 这是我当前的访问代码 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / # don't touch /forum URIs RewriteRule ^forums/ - [L,NC] # hide .php extension snippet # To externally redirec

所以我需要URL看起来像这样

www.mydomain.com/about

这是我当前的访问代码

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

# hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

# To remove www header
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

# To add www header
RewriteCond %{HTTP_HOST} ^mydomain.com [NC]
RewriteRule ^(.*)$ www.mydomain.com/$1 [L,R=301]


RewriteCond %{THE_REQUEST} ^GET.*index [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]


#404 redirect
ErrorDocument 404 http://www.mydomain.com/

我认为问题出现在php领域。我认为它删除了.php,并将url重写为mydomain.com/about,同时,“添加www头”规则正在强制www进入。如何解决这一问题?

如果您在没有其他规则的情况下尝试它会怎么样?好的,这很有效。现在唯一的另一件事是,当您手动将.php添加到url的末尾时,它不会删除它。例如,如果您直接键入mydomain.com/about.php,它会变成www.mydomain.com/about.phpI,并根据您之前的评论更新答案。
Options +MultiViews

# Turn mod_rewrite on
  RewriteEngine On
  RewriteBase /

# To add www header
  RewriteCond %{HTTP_HOST} ^mydomain.com$
  RewriteRule ^(.*) http://www.mydomain.com/$1  [QSA,L,R=301]

# To Remove .php-extension from url
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteCond %{REQUEST_URI} ^(.*)\.php$
  RewriteRule . %1 [R=301,L]