Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Apache Laravel将www重定向到htaccess无法正常工作的非www_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache Laravel将www重定向到htaccess无法正常工作的非www

Apache Laravel将www重定向到htaccess无法正常工作的非www,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我在一个.htaccess文件中有以下几行代码,该文件将www URL重定向到非www URL: RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 它在尝试加载索引路由时正常工作:https://www.example.com至https://example.com,但如果有人试图加载任何其他路由,它不会加载任何内容,例如,如果我尝试加载https://www.example

我在一个
.htaccess
文件中有以下几行代码,该文件将www URL重定向到非www URL:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
它在尝试加载索引路由时正常工作:
https://www.example.com
https://example.com
,但如果有人试图加载任何其他路由,它不会加载任何内容,例如,如果我尝试加载
https://www.example.com/about-us
它将URL转换为
https://example.com/index.php
并且它不会加载任何内容

我怎样才能解决这个问题

编辑

我的完整
.htaccess
如下所示:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

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

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    
    RewriteCond %{REQUEST_URI} !(\.css|\.pdf|\.mp4|\.woff|\.woff2|\.ttf|\.js|\.png|\.jpg|\.jpeg|\.gif|robots\.txt)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(css|js|images|favicon|fonts|font|videos|storage|pdf)/(.*)$ public/$1/$2 [L,NC]
    
    
  
    
</IfModule>

<IfModule mod_headers.c>
   Header set Access-Control-Allow-Origin "*"
</IfModule>
<FilesMatch ".(eot|ttf|otf|woff|woff2)">
   Header set Access-Control-Allow-Origin "*"
</FilesMatch>


<Files .env>
order allow,deny
Deny from all
</Files>

选项-多视图-索引
重新启动发动机
重写条件%{HTTP_HOST}^www\.(.*)$[NC]
重写规则^(.*)$https://%1/$1[R=301,L]
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
重写cond%{REQUEST_URI}!(\.css\.pdf\.mp4\.woff\.woff2\.ttf\.js\.png\.jpg\.jpeg\.gif\.robots\.txt)$[NC]
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_URI}^/公开的/
重写规则^(css | js |图像| favicon |字体|字体|视频|存储| pdf)/(.*)$public/$1/$2[L,NC]
标题集访问控制允许原点“*”
标题集访问控制允许原点“*”
命令允许,拒绝
全盘否定
您可以试试这个

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]

这种重定向可能发生在重写到index.php之后,在这种情况下,您最终会重定向到重写的URL。尝试将这些规则移到顶部。htaccess@apokryfos我已经将这些行移到了文件的开头,就在行上的
RewriteEngine之后,但结果相同:/“我已经将这些行移到了开头”-如果您以前在文件的后面有这些指令,那么您可能看到了缓存响应。默认情况下,浏览器会永久缓存301(永久)重定向。否则,以当前顺序发布的指令看起来正常。@MrWhite您是对的,在修改这些指令时不知道缓存响应,现在它正在工作。这些行的结果相同。