Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除尾随斜杠和非www到www-使用.htaccess_.htaccess_Mod Rewrite_Trailing Slash - Fatal编程技术网

删除尾随斜杠和非www到www-使用.htaccess

删除尾随斜杠和非www到www-使用.htaccess,.htaccess,mod-rewrite,trailing-slash,.htaccess,Mod Rewrite,Trailing Slash,在同时合并2个mod_rewrite时,我面临.htace的问题: 删除尾部斜杠 将非www重定向到www 这是我的.htaccess文件 Options +FollowSymLinks RewriteEngine On RewriteBase / # Redirect non-www to www RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.+)/$ http://www.domain.com/$1 [

在同时合并2个mod_rewrite时,我面临.htace的问题:

  • 删除尾部斜杠
  • 将非www重定向到www
这是我的.htaccess文件

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L]

# Remove trailing slash
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
当我只使用其中一个时,它们工作得非常好,但是当我把它们放在一起时,页面就一直在加载

请帮助我找到一种可以同时使用这两种方法的方法。htaccess

尝试以下方法:

RewriteEngine on
Options +FollowSymLinks
RewriteBase /
#Non www to www without trailing slash
RewriteCond %{HTTP_HOST} ^(domain\.com)/?$ [NC]
RewriteRule ^(.*/?[^/]+)/?$ http://www.domain.com/$1 [R=301,L,OR]
RewriteRule  .* http://www.domain.com [R=301,L]
结果:

http://domain.com/aa/
http://ww.domain.com/aa

http://domain.com/aa/bb/
http://ww.domain.com/aa/bb

除<代码>http://domain.com/始终是
http://www.domain.com/
带尾随斜杠

使用HTACCESS的非WWW URL到WWW:

您可以将以下代码添加到.htaccess文件中,您可以在网站根目录中找到它,如果找不到,您可以在文本编辑器中将其复制并保存为.htaccess,然后上载

p、 s:请确保在继续之前备份.HTACCESS文件。不正确的代码可能导致500个错误



    RewriteEngine On
            RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
            RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

删除尾部斜杠

关闭尾部斜杠时要小心。如果您的主机启用了mod_dir,请确保关闭默认启用的目录斜杠。此指令将在目录末尾添加一个尾随斜杠,而不管您设置的规则如何。要禁用此功能,请将其添加到htaccess文件的顶部:


DirectorySlash Off
默认情况下,浏览器甚至服务器都会在目录中添加一个尾随斜杠。这是有原因的。如果必须去掉尾随斜杠,则可以这样做:



    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)$
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]


为什么不工作?如果你写
http://domain.com
它将带您到
http://www.domain.com
。如果你写
http://domain.com/
它将带您到
http://www.domain.com
在我看来,这正是你的要求。这里是:删除尾随斜杠将非www重定向到wwwits不工作在以下情况下:www.domain.com/abc/(abc可以是一个文件夹或只是一个重新连接的url),它不会删除尾随斜杠。有没有机会删除这种尾随斜杠呢?更新了我的答案,应该适用于任何路径。如果没有,请让我知道测试它。