Apache .htaccess基本url重写

Apache .htaccess基本url重写,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,有几件事我想对我的网站的URL做,但我似乎不能像.htaccess文件那样做 1删除文件扩展名f.e.example.com/file.php应该是example.com/file 2删除www.f.e.www.example.com应该是example.com(我让这部分正常工作,但如果在我安装了修复程序后,它不再工作,我会讨厌它 3没有人应该能够在根f.e的末尾看到index.php。example.com/index.php应该是example.com 4我的博客页面应该有很好的URL,例

有几件事我想对我的网站的URL做,但我似乎不能像.htaccess文件那样做

1删除文件扩展名f.e.
example.com/file.php
应该是
example.com/file

2删除www.f.e.
www.example.com
应该是
example.com
(我让这部分正常工作,但如果在我安装了修复程序后,它不再工作,我会讨厌它

3没有人应该能够在根f.e的末尾看到index.php。
example.com/index.php
应该是
example.com

4我的博客页面应该有很好的URL,例如
example.com/blog.php?article=文章名
应该是
example.com/blog/文章名

这是我当前的.htaccess文件

重写URL 当我试图转到
博客/文章名时,我收到一个内部服务器错误。

要删除.php:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

编辑
有关漂亮的URL,请查看本教程:

来自您的.htaccess的正文和注释似乎我在过去会提供它:p

您的.htaccess中唯一的错误是规则的顺序。始终将规则从最具体到最通用。您的代码如下所示:

Options +FollowSymLinks -MultiViews
rewriteengine on
RewriteBase /

## remove www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
## remove ugly part of url for blog.php
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

RewriteRule ^blog/(.*)$ /blog.php?article=$1 [QSA,L]

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

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php

好吧,我删除了我摆脱扩展的方法,添加了你的,现在整个网站都不会加载谢谢,我不知道htaccess1和HTAccess2从通用到特定的规则顺序更适合作为的副本,4更适合作为的副本(所以问题可能太广泛了)。
Options +FollowSymLinks -MultiViews
rewriteengine on
RewriteBase /

## remove www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
## remove ugly part of url for blog.php
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

RewriteRule ^blog/(.*)$ /blog.php?article=$1 [QSA,L]

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

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php