Использование .htaccess mod_rewrite для вставки имени скрипта в начале пути - PullRequest
0 голосов
/ 02 ноября 2010

У меня проблема с перезаписью URL htaccess, которая отлично работает на localhost, но не работает на моем хостинге (anhosting).

Мне нужно перенаправить все запросы на мою страницу index.php. Вот пример: я бы перенаправил

http://mydomain.com/this/is/a/page

до

http://mydomain.com/index.php/this/is/a/page

Это мой .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

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

В чем может быть проблема?

Извините за мой плохой английский, надеюсь, я достаточно ясно ...

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

Звучит так, будто на удаленном сервере AcceptPathInfo выключено. Этот параметр отвечает за эффект, который вы используете.

Попробуйте ручной запрос к

http://mydomain.com/index.php/this/is/a/page

если this/is/a/page исчезает, то эта опция определенно отключена, и вы не можете использовать этот метод на удаленном сервере (если вы не можете изменить его конфигурацию).

В этом случае я бы изменил правило на

RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]

и измените структуру для прослушивания $_GET["path"] вместо $_SERVER["PATH_INFO"].

0 голосов
/ 02 ноября 2010

Вы включили перезапись мод в файлах конфигурации Apache.

sudo nano /etc/apache2/sites-available/default
sudo nano /etc/apache2/sites-enabled/000-default

Вот сайт, который показывает вам несколько способов. Я сделал мои изменения в моде, изменив вышеуказанные файлы, но я думаю, что есть и другие способы.

http://drupal.org/node/134439

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...