.htaccess 损坏

.htaccess 损坏

我快要疯了。

我有一个网站的 .htaccess,其中包含以下内容:

Options FollowSymLinks
<ifmodule mod_rewrite.c>
RewriteEngine on
rewritecond %{http_host} ^XXX.com.ar [nc]
rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc] 
</ifmodule>

如果用户没有输入 URL,它只会在 URL 前面添加“www”。

经过一些开发后,我为我的网站制作了一个简单的“路由器”框架。然后,每个请求都必须转到 index.php 并由它“调度”它。因此,我的 .htaccess 结尾如下:

Options FollowSymLinks
<ifmodule mod_rewrite.c>
RewriteEngine on
rewritecond %{http_host} ^XXX.com.ar [nc]
rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ../index.php?url=$1 [NC,L]
</ifmodule>

问题是,现在,当我访问:XXX.com.ar(没有 www)时,我有一个 301 - 永久移动

301 - 永久移动 > 301 - 永久移动301 - 永久移动

信息。

还有类似这样的内容(在同一个文档中):

ErrorDocument 来处理请求。

ErrorDocument 来处理请求。> 此外,400 Bad Request 错误

尝试使用 ErrorDocument 处理请求时遇到错误。使用 ErrorDocument 处理请求。

301 – 永久移动 ErrorDocument 来处理请求。

答案1

尝试:

RewriteEngine on
RewriteCond %{HTTP_HOST} XXX.com.ar [NC]
RewriteRule ^(.*)$ http://www.XXX.com.ar/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

答案2

只需改变句子的位置,效果就很好

Options FollowSymLinks
<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ../index.php?url=$1 [NC,L]
rewritecond %{http_host} ^XXX.com.ar [nc]
rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc] 
</ifmodule>

相关内容