Apache Htaccess删除WWW和斜杠+;301重定向
我无法建立301重定向重写规则来从域名中删除WWW和从URL中删除斜杠 提前感谢您的帮助 例如:Apache Htaccess删除WWW和斜杠+;301重定向,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我无法建立301重定向重写规则来从域名中删除WWW和从URL中删除斜杠 提前感谢您的帮助 例如: www.domain.com/ to domain.com domain.com/ to domain.com domain.com/page/ to domain.com/page domain.com/page.php to domain.com/page 我的代码: RewriteCond %{HTTP_HOST} ^(www.)?domain\
www.domain.com/ to domain.com
domain.com/ to domain.com
domain.com/page/ to domain.com/page
domain.com/page.php to domain.com/page
我的代码:
RewriteCond %{HTTP_HOST} ^(www.)?domain\.com$ [NC]
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^/(.*)/$ /$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
您可以使用以下选项:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^ http://example.com%{REQUEST_URI} [NE,L,R]
#remove trailing slash
RewriteRule ^(.+)/$ /$1 [L,R]
#remove .php ext
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]
请注意,这不会从现有目录中删除尾部斜杠。当您请求现有目录时,Apache会添加一个尾随斜杠。如果要删除此斜杠,则需要在htaccess中使用以下指令
DirectorySlash off
这会告诉apache忽略斜杠,您可以使用斜杠或不使用斜杠访问现有的目录。谢谢您的帮助。www和斜杠很好地删除了,但是cons将我重定向到带有visible.php的页面。有没有办法隐藏.php扩展名?我为你的.php文件添加了一条规则。请重新加载页面以查看它。非常感谢您的帮助。我将继续查阅Apache文档,以更好地了解标志的使用。