.htaccess не будет работать на Linux-сервере 1, но работает на сервере 2? - PullRequest
0 голосов
/ 13 октября 2010

Я создал .htaccess, который использовал на всех хостах вплоть до этого, чтобы переписать index.html в корневой домен.

Это код

Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.domain.co.uk/ $1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.domain.co.uk/ $1 [R=301,L]

RewriteEngine on
RewriteBase /
RewriteRule ^index\.(htm|html|php) http://www.domain.co.uk/ [R=301,L]
RewriteRule ^(.*)/index\.(htm|html|php) http://www.domain.co.uk/$1/ [R=301,L] 
RewriteCond %{HTTP_HOST} ^domain\.co.uk 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=permanent,L]

Но, увы, он не будет работать на vidahost.com, когда они все еще предположительно являются одним и тем же сервером, и этот код работал на серверах годами, поэтому я сомневаюсь, что это устаревшая проблема обновления сервера.

Они тоже не могут, и я застрял. Всю помощь заранее благодарю.

Ответы [ 2 ]

0 голосов
/ 13 октября 2010

Ну, во-первых, вы должны опубликовать конфигурацию виртуального хоста, а также вы можете включить режим перезаписи отладки.

RewriteLog path-to-log-file
RewriteLogLevel number-0-9- /zero is disabled/

Это может помочь вам выяснить, что не так.

0 голосов
/ 13 октября 2010

Это может быть проблема конфигурации Apache - вам нужно разрешить использовать mod_rewrite в основной конфигурации Apache.

Кроме того, RewriteEngine обычно должен быть перед любыми другими командами mod_rewrite, хотя, если раньше он работал на вас, возможно, проблема не в этом.

...