Простой Apache .htaccess RewriteRule - PullRequest
0 голосов
/ 22 декабря 2010

Я в основном хочу, чтобы каждый запрос

http://localhost/~lucamatteis/datadict/AccessionMainName

чтобы на самом деле позвонить

http://localhost/~lucamatteis/datadict/index.php/AccessionMainName

Вот мой текущий .htaccess физически расположенный под ~lucamatteis/datadict/

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

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

В phpinfo() под загруженными модулями загружен раздел mod_rewrite. Я не уверен, где еще искать, поскольку мне может понадобиться загрузить дополнительную вещь для работы mod_rewrite.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 22 декабря 2010

Прежде всего убедитесь, что вы можете переопределить конфигурацию Apache через файл .htaccess (директива AllowOwerride config).

Затем попробуйте полностью удалить директиву RewriteBase.В этом случае текущий каталог будет использоваться в качестве базы.

0 голосов
/ 22 декабря 2010

Мне кажется, проблема в том, что вы хотите выполнить внутреннее перенаправление в файл, который не существует:

/home/lucamatteis/public_html/datadict/index.php/AccessionMainName

Это будет работать, только если index.php является каталогом, а AccessionMainName является файлом.

Я не думаю, что такое можно сделать. В большинстве случаев все, что вам нужно, это использовать параметры строки запроса:

index.php?AccessionMainName

... и вы читаете это из $_GET['AccessionMainName'].

0 голосов
/ 22 декабря 2010

Измените свою ReWriteBase на свой физический каталог:

/home/lucamatteis/public_html/datadict  (or something similar)

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteBase

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