2013-03-17 4 views
1

Хорошо, я сделал кучу чтения, а также играл, но я не могу решить эту проблему .htaccess.перенаправление домена аддона (и всех URL-адресов) с использованием .htaccess

У меня есть домен аддона для моей основной учетной записи хостинга. Я сумел иметь корневой домен аддон перейти к конкретному файлу, используя следующий код: .htaccess

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www.)?addondomain.org$ 
RewriteRule ^(/)?$ /new-index.php [L] 

Это все хорошо; однако, если кто-то пытается получить доступ к домену аддона по любому другому URL-адресу, чем к корню, а эта страница не существует, то появляется 404. Итак, если я перейду в addondomain/car.php, отобразится 404.

Я хотел бы, чтобы все 404 ошибки для домена аддона - и ТОЛЬКО для домена аддона - также отображали файл new-index.php.

Команда ErrorDocument 404 /new-index.php не является опцией, поскольку она влияет как на основной домен, так и на домен аддона.

По-другому: я хочу, чтобы любой URL-адрес домена аддона указывал на /new-index.php.

Мысли? Благодарю.

+0

Ну, '^ (WWW.)? Addondomain.org $', очевидно, соответствует только для самого или с WWW домена. перед ней. Если вы хотите, чтобы он соответствовал другим доменам, соответствующим образом измените это регулярное выражение. – CBroe

+0

Нет, я не хочу сопоставлять * другие * домены - я хочу перенаправить все URL-адреса домена аддона - так что ... addondomain.org/cars.php и addondomain.org оба указывают на один и тот же файл. – user2155255

+0

Ну, тогда вы должны добавить RewriteConds, чтобы проверить, соответствует ли запрос существующему файлу или каталогу, будет ли он 404 или нет, а затем перенаправить, только если нет ... http://httpd.apache.org/ docs/2.0/ru/mod/mod_rewrite.html # rewritecond – CBroe

ответ

0

Если вы хотите сопоставить все пути URL-адреса, вы должны использовать регулярное выражение, которое соответствует всем. Используйте .* или ^, например

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/new-index\.php$ 
RewriteCond %{HTTP_HOST} ^(www.)?addondomain.org$ 
RewriteRule^/new-index.php [L] 
+0

Я только хочу сопоставить URL-адрес домена аддона, так как это будет выглядеть? – user2155255

+0

@ user2155255 Поскольку у вас уже есть это, просто замените 'RewriteRule'. См. Обновленный ответ. –

+0

Спасибо за обновленный ответ. Когда я попытался использовать новый код, который вы предложили, это вызвало ошибку 500. Мысли? – user2155255

Смежные вопросы