0

我不希望服务器总是将我的 URL 重定向为“http://www.domain.com”,即使用户只写“domain.com”。

我可以在网上找到一些这样的例子,但我已经在 .htaccess 文件中有一些修复,我不知道在哪里放什么,所以它不会与之前的代码冲突。

这是我的 .htaccess 文件:

RewriteEngine on
RewriteBase /
ErrorDocument 404 /404

RewriteRule ^adminator/?$ adminator/login.php [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3&detail4=$4 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2 [QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?detail1=$1 [QSA,L]

我应该输入什么,所以它会将 URL 重定向到“www”?

最后一个问题,这就是我所要做的,所以搜索引擎对 URL 没有问题吗?

4

2 回答 2

0

我通常会做相反的事情。

您可能希望 www.example.com 转发到 example.com - 较短的 URL 更性感。没有-www.org/faq.php?q=class_b

感谢HTML5 样板,我通常会添加:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

如果您想在 .htaccess 中执行此操作:

RewriteEngine on
RewriteBase /
ErrorDocument 404 /404
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^adminator/?$ adminator/login.php [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3&detail4=$4 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2 [QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?detail1=$1 [QSA,L]

否则,尝试逆RewriteCond并关联RewriteRule

于 2010-11-12T10:55:07.713 回答
0

您的 [^/\\.]模式简化[^/.]为期间不需要转义。

于 2011-04-15T12:04:59.970 回答