Как да добавите 301 пренасочване от не www към www за Wordpress

имам .htaccess файл с един прост RewriteRule:

RewriteEngine on RewriteRule ^([A-Za-z0-9-]+)$ ?site=$1 

Искам да имам URL като http://www.example.com/imprint и го препратете на http://www.example.com/?site=imprint.

Проверих това правило с RewriteRule тестер, който ми даде резултатите, които искам да постигна. На моя локален сървър за развитие също работи добре.

Но на отдалечен сървър URL адресите просто ми дават грешка 404. Други по-прости правила за пренаписване работят без проблеми, така че всичко трябва да бъде настроено правилно (мисля ..). Проблемът е, че нямам достъп до журнали за грешки или конфигурации на сървъра. Така че единственото нещо, което мога да направя, е да гадая ...

Някой може ли да ми каже дали нещо не е наред с това правило? Или нещо друго, което мога да направя или тествам, за да разреша това? Или някой има идея какво може да се обърка на сървъра?

  • 1 Позволява ли отдалеченият сървър да замени с .htaccess? Активиран ли е mod_rewrite?
  • Трябва да е. Не мога да го проверя в конфигурациите, но както казах, ако използвам друго по-просто правило, напр. пренасочете всяко обаждане към страницата на www.google.com, което работи.

Опитайте наклонена черта преди?, Като

RewriteEngine on RewriteRule ^([A-Za-z0-9-]+)$ /?site=$1 

Ако това не работи, опитайте да добавите [R] след $ 1, така че той действително ще пренапише URL адреса и можете да видите къде отива в URL лентата на вашия браузър

  • Благодаря ти много. Наклонената черта работи като чар. Без наклонената черта и добавянето на [R] се пренасочвам към целия път на файловата система като www.example.com/www/hosting/XXX/XXX/websites/example/?site=imprint Можете ли да ми обясните това поведение? Защо работи на други сървъри, но не и на този? Има ли някаква конфигурация за това?
  • кои са 2 сървърните среди? Както при WAMP срещу Linux? Версиите на Apache същите? Може би единият има RewriteBase / в .htaccess, а другият няма? Или може би един от DocumentRoot в httpd.conf (или vhosts) съдържа наклонена черта в самия край на пътя на папката, където, както другият не? Честно казано научих, че стартирането на пренасочващи URL адреси винаги трябва да започва с / ако не с пълен http: // път, така че наистина не мога да говоря за очакваното поведение на non / urls, както първоначално, защото никога не ги използвам ...
  • Хм добре, много неща могат да бъдат причина за това поведение. Просто се опитвам да се приуча винаги да пиша URL адресите за пренасочване с наклонена черта.
  • Намерих този урок (особено част 2) особено полезен, когато за първи път започнах да си играя с htaccess, надявам се и вие или някой, който чете това, да е полезен: corz.org/serv/tricks/htaccess.php

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?