Как исправить канонизацию URL с помощью .htaccess? - PullRequest
0 голосов
/ 12 ноября 2010

Я не хочу, чтобы сервер всегда перенаправлял мои 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,

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

Ваш шаблон [^/\\.] упрощается до [^/.], поскольку период НЕ нуждается в экранировании.

0 голосов
/ 12 ноября 2010

Я обычно поступаю наоборот.

Вы, вероятно, хотите, чтобы www.example.com пересылал на example.com - короткие URL-адреса более сексуальные.no-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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...