2014-01-03 6 views
0

После нескольких поисковых запросов, я думаю, у меня есть файл .htaccess, который должен работать. Идея довольно проста, если вещь после domain.com/ существует, она должна показать ее, иначе она переписывает index.php? P =.Htaccess RewriteRule не работает, пока он должен

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.* - [L] 
RewriteRule ^/(.*)/ index.php?p=$1 

Теперь, когда я иду в domain.com/hello, я получаю сообщение об ошибке, что каталог «привет» не существует .. Файл Htaccess используется во время запроса, хотя, потому что, когда я что-то Бип в коде htaccess, который не должен работать, он дает ошибку.

Может кто-нибудь сказать мне, в чем проблема?

Я проверил конфигурацию apache, и mod_rewrite включен.

спасибо, Robin

+0

Где ваши файлы размещены это в корне или любой подкаталог? –

ответ

1

Уточнитните Rewrite базу в вашем Htaccess, если его помещают в корневой каталог

RewriteBase/
+0

Сделал трюк! благодаря! –

+0

Ваше приветствие :) –

0

Не пишите первый слэш на RewriteRule

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

Он должен работа таким образом

EDIT: попробуйте следующее

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
+0

Добавил это, но ничего не изменил, все еще выдавая ошибку, запрошенная директория не существует. Затем я изменил его на RewriteRule^(. *) /index.php?p=$1 Теперь он говорит, что /public_html/index.php не существует .. пока он это делает. –

+0

Я отредактировал код –

+0

404 cant find the dir –

0

Изменение этой линии

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

в

RewriteRule ^/?(.*)/? index.php?p=$1 
+0

Теперь он пытается загрузить index.php, но при этом появляется сообщение об ошибке index.php не может быть найден .. пока он существует в каталоге, в котором система ищет его. Это может быть что-то, что im в настоящее время использует temp. url server.ext/~ user/вместо полного домена? –

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