Возникли проблемы с простым перенаправлением .htaccess - PullRequest
0 голосов
/ 25 августа 2010

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

У меня есть сайт на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.

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

Ответы [ 3 ]

0 голосов
/ 25 августа 2010

Простой:

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 голосов
/ 25 августа 2010

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

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

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

0 голосов
/ 25 августа 2010

Включите это один раз для каждого файла .htaccess:

Options +FollowSymlinks
RewriteEngine on

RewriteRule (.*) index.php

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

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