2010-08-25 2 views
0

Я работаю над этим некоторое время и пробовал множество различных решений, которые я видел в Интернете, и, похоже, не может заставить это работать.Проблемы с простым переадресацией .htaccess

У меня есть сайт на www.mydomainname.com. Страница, на которой я хочу обрабатывать ВСЕ страницы запросов, - www.mydomain.com/index.php. Я также хотел бы настроить это для работы в любых других доменах, которые я указываю на эту базу кода (с помощью подстановочных знаков это будет путь для этого, я думаю).

Так следующие типы URL (или любой другой) должен автоматически перейти к index.php, в то же время сохраняя первоначальную структуру URL в адресной строке браузера:

www.mydomain.com/ 
mydomain.com/ 
www.mydomain.com/item/111 
www.mydomain.com/item/itemname/anothervariable/value 
www.mydomain.com/item/itemname/?variable=value 

Я использую PHP 5 и недавняя версия Apache с включенным mod_rewrite.

Заранее благодарим за любую помощь!

+0

Проверьте ответ, который я дал на этот вопрос: http://stackoverflow.com/questions/3470040/help-writing-an-htaccess/3470102#3470102 Если вы хотите перенаправить все на свой index.php, это лучшее правило перезаписи для использования. – Gabriel

ответ

0

Простой:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_URI} !\.(jpg|gif|ico|png|bmp|css|js)$ 

RewriteRule .* index.php 
+0

Это действительно работает, но я забыл одно, извините ... внутренние ссылки, такие как файлы CSS, файлы сценариев, изображения и включенные файлы PHP (в определенных каталогах) и т. Д., Должны были бы функционировать должным образом - они, похоже, не после того, как я реализовал это решение. Мне жаль, что я не сказал об этом. – Gary

+0

Там вы, обновленный :) –

+0

Это все ... спасибо! – Gary

0

Включите этот раз за .htaccess файл:

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule (.*) index.php 

Если вам нужна информация из подходящего URL вы можете изменить ваш RewriteRule, чтобы соответствовать части старого URL или просто включить все, используя переменные $1 и так далее. Если, например, вы хотите получить номер пункта проскочил в index.php, вы можете использовать это правило:

RewriteRule item/(.*)$ index.php?item=$1 
0

Вы можете использовать последующие RewriteRule

RewriteEngine On 
RewriteRule ^(.*)$ /index.php?originalUrl=$1 

Непрошеный, но он должен работать. Затем вы также получите исходный URL-адрес в параметре «originalUrl» GET для дальнейшего синтаксического анализа.

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