我快要疯了。
我有一个网站的 .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>