Почему не работает это правило переписывания модов? - PullRequest
0 голосов
/ 01 декабря 2009

На моей машине есть сайт разработки на

localhost/~Jason/hfh/admin/?admin=collections

Мой файл .htaccess находится в каталоге / hfh / admin /. Там написано:

RewriteEngine On
RewriteBase /~Jason/hfh/
RewriteRule ^([A-Za-z0-9\-\_]*)$ index.php?admin=$1

Но когда я иду на

localhost/~Jason/hfh/admin/collections

Я получаю сообщение об ошибке "страница не найдена". Может кто-нибудь сказать мне, почему?

(Это связано с другим вопросом на этой ссылке .)

Ответы [ 3 ]

1 голос
/ 01 декабря 2009

Если у вас есть файл .htaccess в / hfh / admin /, то для начала создайте базу.

RewriteBase /~Jason/hfh/admin/

тогда вы можете увидеть, что вы ожидаете. Также вы можете захотеть, чтобы предложение не перенаправляло, когда файл / каталог существует.

Работает ли ввод URL ожидаемого результата?

/~Jason/hfh/admin/index.php?admin=Collections

Edit:

Так что же произойдет, если вы измените весь лот на:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /~Jason/hfh/admin/index.php?admin=$1 [L]
0 голосов
/ 02 декабря 2009

Короткий прямой ответ на данный момент выглядит так: вы не можете использовать mod_rewrite на своем локальном хосте.

0 голосов
/ 01 декабря 2009

Похоже, что это отправит вас на страницу /~Jason/hfh/index.php?admin=collections, когда вы хотите /~Jason/hfh/admin/index.php?admin=collections.

Попробуйте изменить правило на:

RewriteRule ^([A-Za-z0-9\-\_]*)$ admin/index.php?admin=$1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...